2014-11-08 46 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