嵌套元素在jquery中搜索

时间:2012-05-10 19:22:58

标签: jquery jquery-ui

我正在使用jQuery和jQuery ui。以下是我的标记:

<div id="content">   
   <ul id="sortable">             
    <li class="button_tab"><div id="select_me">Select Me</div></li>
    <li class="button_tab"><div id="select_me_1">Select Me 1</div></li>
    <li class="button_tab"><div id="select_me_2">Select Me 2</div></li>           
  </ul>  
</div>

jquery的:

 $( ".button_tab" ).button(); 

我试图在click事件上获取id =“select_me”,但没有任何反应,因为button()函数插入了特定的类名,我无法正确选择它:

 $('div#content ul#sortable li.button_tab div').click(function() {
   alert($(this).attr('id'));        
 }); 

2 个答案:

答案 0 :(得分:3)

给定的代码工作正常。然而,调用它们的顺序很重要。

.button()将清除所有click个事件,因为它在逻辑上应该处理“点击”。因此,为孩子们再次启用自定义click事件。调用click

后,您必须创建一个.button()事件监听器
  1. $( ".button_tab" ).button();
  2. $('div#content ul#sortable li.button_tab div').click(function() { alert($(this).attr('id'));
    });
  3. 否则,您可以使用.on()并在Jquery中创建动态click事件侦听器。

答案 1 :(得分:1)

尝试

$("#sortable li.button_tab div[id^='button_tab']").click(function() {
   alert($(this).attr('id'));        
}); 

OR

$("#sortable li.button_tab").click(function() {
   var div_id = $(this).find("div[id^='button_tab']").attr("id");
   alert(div_id);        
});