Jquery 选择对象的子对象
我有这个需求ul>li结构Jquery 选择对象的子对象,jquery,Jquery,我有这个需求ul>li结构 <ul class='compare'> <li>Level 1 <ul> <li>Level 2</li> <li>Level 2</li> <li>Level 2</li> <li>Level 2</li>
<ul class='compare'>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
<li>Level 1
<ul>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
<li>Level 2</li>
</ul>
</li>
</ul>
有没有一种方法可以选择一个对象的所有子对象并直接应用
live
,而无需使用.each()
?谢谢@Matt,你似乎无意中用你的评论回答了我的问题。解决方案是.on()
当这不起作用时,我们必须使用.each()
将鼠标悬停
分配给每个匹配的元素
//obj.children("li").children("ul").children("li").live("mouseover", function () {...}); //Does not work
obj.children("li").children("ul").children("li").each(function () {
$(this).live("mouseover", function () {...});
});
这是可行的,不需要.each()
... 你想干什么?
$(“ul.compare>li”)有什么问题代码>?另请注意,从jQuery 1.7开始,live()
已被降价,取而代之的是。感谢live()警告。我正在尝试编写我的第一个插件,我只有这个返回这个.each(function(){var o=options;var obj=$(this);…})代码>所以当应用此插件时,选择器可以是id或类名。以前有.selector
,但现在它不见了。我很难确定您想要的新解决方案是什么。您是否希望在ul中的任何li
上触发事件。比较或其他内容?obj
是否传递了一个选择器?@Eric检查我下面的答案,这是我试图做的,但我不知道.on()
及其功能。
//obj.children("li").children("ul").children("li").live("mouseover", function () {...}); //Does not work
obj.children("li").children("ul").children("li").each(function () {
$(this).live("mouseover", function () {...});
});
obj.children("li").children("ul").children("li").on("mouseover", function () {...});