选择对象的子对象

时间:2012-04-05 08:48:57

标签: jquery

我有这个reqular ul>李结构

<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>

我使用$("ul.compare > li").live(...);将鼠标事件分配给ul

的子项

但是现在我需要得到一个物体的孩子。我要说obj$("ul.compare")

如果我喜欢这个$("li", obj).live(...),这不仅会给所有的孩子分配事件。

我可以这样做,但我不喜欢它

obj.children("li").each(function () {
    $(this).live(...);
});

有没有办法选择对象的所有子项并直接应用live而不使用.each()

1 个答案:

答案 0 :(得分:0)

谢谢@Matt,看来你在不知不觉中回答了我的问题。解决方案是.on()

虽然这不起作用,但我们必须使用.each()mouseover分配给每个匹配的元素

//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()

obj.children("li").children("ul").children("li").on("mouseover", function () {...});