如何针对所有后代的孩子,但第一个

时间:2013-06-28 19:32:32

标签: jquery

我想定位所有<ul>的父<li>的孩子lis,但主要是ul的第一个孩子,但我无法让它工作。

<ul class="some_ul">
    <li><a href="#">Home</a></li>
    <li><a href="#">Drop 1</a>
        <ul>
            <li><a href="#">Link 1</a></li>
            <li><a href="#">Link 2</a></li>
            <li><a href="#">Link 3</a></li>
        </ul>
    </li>
</ul>

jQuery的:

$('.some_ul > li').addClass('first_li');

$('.some_ul li:not(.first_li)').children('ul').css({
    'position': 'relative',
    'left': 200
});

所以基本上我试图瞄准第二个ul,以及之后的任何ul。

FIDDLE

3 个答案:

答案 0 :(得分:1)

$('.some_ul > li').addClass('first_li');没有做你想做的事。 >会选择所有直接后代,因此您的示例是将类first_li添加到其下的所有li

我认为你想要这样的东西:

$('.some_ul > li').not(":first").children('ul').css({
    'position': 'relative',
    'left': 200
});

http://jsfiddle.net/92Dsq/

答案 1 :(得分:1)

  

所以基本上我试图瞄准第二个ul,以及任何ul   来之后。

过于具体:

$('ul.some_ul > li > ul').children('ul').addBack();

答案 2 :(得分:0)

使用:first选择器。像这样:

$('.some_ul li:not(:first)').children('ul').css({ //...

看看:http://jsfiddle.net/6yBef/