如何仅针对父元素?

时间:2012-12-13 08:57:57

标签: jquery

我关注了标记:

<ul>
    <li>
        <a href="#"><img src="sample-big-product.png" alt="" title="" /></a>
        <span><a href="#">View Product</a></span>
        <ul><li>1,2,3</li></ul>
            <h2>Featured product name</h2>
        <p>Lorem ipsum dolor sit amet, cosetur adispci elit. Morbi poseure ante porta justo...</p>
    </li>

    <li>
        <a href="#"><img src="sample-big-product.png" alt="" title="" /></a>
        <span><a href="#">View Product</a></span>
            <ul><li>1,2,3</li></ul>
        <h2>Featured product name</h2>
        <p>Lorem ipsum dolor sit amet, cosetur adispci elit. Morbi poseure ante porta justo...</p>
    </li>
    <li>
        <a href="#"><img src="sample-big-product.png" alt="" title="" /></a>
        <span><a href="#">View Product</a></span>

        <h2>Featured product name</h2>
        <p>Lorem ipsum dolor sit amet, cosetur adispci elit. Morbi poseure ante porta justo...</p>
    </li>
    <li>
        <a href="#"><img src="sample-big-product.png" alt="" title="" /></a>
        <span><a href="#">View Product</a></span>

        <h2>Featured product name</h2>
        <p>Lorem ipsum dolor sit amet, cosetur adispci elit. Morbi poseure ante porta justo...</p>
    </li>
</ul>

这是我的jquery,所以在这里我针对所有LI和所有UL。但我只想针对ul li而不是ul li ul li

// get all available UL and LI elements...
var li_elements = container.find("LI").clone();

// remove the current content so that we can rebuild it for the slider...
container.find("UL").remove();

P.S。显然我可以简单地为它们添加.class。但我宁愿不要使标记复杂化......

4 个答案:

答案 0 :(得分:2)

使用'{1}}'直接子项'选择器。假设>是引用顶级container的父元素的jQuery对象,这应该有效:

ul

答案 1 :(得分:0)

如果您只想选择ul的直接后代,请使用.children方法(假设containerul元素)

container.children("li");

如果您只想选择包含其他无序列表的无序列表,可以使用:has()选择器(假设containerul的祖先)

container.find("ul:has(ul)");

答案 2 :(得分:0)

桑德罗,如果你只想要第一次出现ul li并跳过其余部分那么请使用“first()”  例如.var li_elements = container.find(“LI”)。first()//给你第一个li

有关详细信息,请参阅http://api.jquery.com/first/

答案 3 :(得分:0)

我不知道你想要实现什么,但据我所知,我创造了一个小提琴:

<强> http://jsfiddle.net/AFM2P/

在这个小提琴里我有c reated a hover eventremoved the direct children of the hovered ul

i guess you want to achieve something like this

这就是我的尝试:

$('ul:first').hover(function(){
    $('ul',this).remove(); //<---------This will remove the child ul 
});                        //           of the hovered ul