2014-11-08 72 views
-3
<ul class="urls"> 
    <li class="url">0 
     <ul class="url_qry_str"> 
      <ul>1</ul> 
      <ul>2</ul> 
      <ul>3</ul> 
     </ul> 
     <ul class="url_qry"> 
      <li> 
       <button onclick="url_qry_add(event);">Add</button> 
      </li> 
     </ul> 
    </li> 
    <li class="url">1 
     <ul class="url_qry_str"> 
      <ul>1</ul> 
     </ul> 
     <ul class="url_qry"> 
      <li> 
       <button onclick="url_qry_add(event);">Add</button> 
      </li> 
     </ul> 
    </li> 
    <li class="url">2 
     <ul class="url_qry_str"> 
      <ul>1</ul> 
      <ul>2</ul> 
     </ul> 
     <ul class="url_qry"> 
      <li> 
       <button onclick="url_qry_add(event);">Add</button> 
      </li> 
     </ul> 
    </li> 
</ul> 
function url_qry_add(e) { 
    e.preventDefault(); 
    alert($(this).closest(".url").index()); 
}); 

我一直在得到li.url位置的指数挣扎。我究竟做错了什么? http://jsfiddle.net/defaye/4a52gsj4/无法获取父元素的索引中jQuery的

+2

我什么也看不到与类'.qry_add'。 – 2014-11-08 19:20:51

+0

在你的小提琴中,将菜单从'OnLoad'改为'No Wrap',这样'url_qry_add'函数就会在全局范围内。 – Barmar 2014-11-08 19:21:55

+0

对于所有那些已经降低了投票率的人,你可以撤消它,我刚更新了问题, – Jonathan 2014-11-08 19:24:52

回答

1

这jsfiddle示例的作品。我认为这是失败的,因为this实际上是Window类,而不是按钮元素。

http://jsfiddle.net/wy9g8cdp/

function url_qry_add(e) { 
 
    e.preventDefault(); 
 
    alert($(e.target).closest(".url").index()); 
 
};
<ul class="urls"> 
 
    <li class="url">0 
 
     <ul class="url_qry_str"> 
 
      <ul>1</ul> 
 
      <ul>2</ul> 
 
      <ul>3</ul> 
 
     </ul> 
 
     <ul class="url_qry"> 
 
      <li> 
 
       <button onclick="url_qry_add(event);">Add</button> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
    <li class="url">1 
 
     <ul class="url_qry_str"> 
 
      <ul>1</ul> 
 
     </ul> 
 
     <ul class="url_qry"> 
 
      <li> 
 
       <button onclick="url_qry_add(event);">Add</button> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
    <li class="url">2 
 
     <ul class="url_qry_str"> 
 
      <ul>1</ul> 
 
      <ul>2</ul> 
 
     </ul> 
 
     <ul class="url_qry"> 
 
      <li> 
 
       <button onclick="url_qry_add(event);">Add</button> 
 
      </li> 
 
     </ul> 
 
    </li> 
 
</ul>

+0

我很抱歉。我没有打算运行我的问题示例代码来使用函数的'.on'版本。我试图让它与一个命名函数一起工作。 – Jonathan 2014-11-08 19:32:28

+0

它现在是一个命名函数。那样有用吗? – Timmerz 2014-11-08 19:34:34

+0

或者使用旧方法,您可以使用$(e.target)获取源按钮 – Timmerz 2014-11-08 19:35:19