2010-07-26 42 views
1
<li id="someID"> 
    <div id="div1">Text</div> 
    <div id="div2">Text x 2</div> 
    <div id="div3">Text x 3</div> 
     <span> 
      <div> 
       <ul> 
        <li class="menuItem">Menu Item</li> 
       </ul> 
      </div> 
     </span> 
</li> 

總之,我試圖在類「menuItem」被點擊時找到ID「someID」。下面的代碼似乎並沒有削減它。使用jQuery來查找包含元素的ID

$('.menuItem').click(function(){alert($(this).closest('li').attr('id'));}); 

回答

5

,而不是.closest('li').使用.parents('li').注複數

它甚至在closest()文件提及on ..

+0

對於原始提問者:http://api.jquery.com/closest/給出了最接近()和父母()之間差異的很好解釋。請注意,儘管父母()可以返回多個元素,但最接近的元素將是集合中的第一個;並且在具有多個元素的集合上使用.attr()時,它將返回集合中第一個元素的屬性。 – Carson63000 2010-07-26 06:05:49

1

如果您希望父,那麼你可以用它記錄here

1

.parent可以使用.parent

.parents("li") so it will return the li parent 
2

另一種方法是在您要識別的li上添加一個類,並使.closest()選擇器更加精確。

例如

<li class="master" id="someID"> 
    <div id="div1">Text</div> 
    <div id="div2">Text x 2</div> 
    <div id="div3">Text x 3</div> 
     <span> 
      <div> 
       <ul> 
        <li class="menuItem">Menu Item</li> 
       </ul> 
      </div> 
     </span> 
</li> 

$('.menuItem').click(function(){alert($(this).closest('li.master').attr('id'));}); 
相關問題