jQuery:nth-​​child()选择器

时间:2010-01-08 10:26:56

标签: jquery jquery-selectors

您好请看下面的HTML。我正在尝试使用jQuery来获取DIV上的每个第3个实例,其中class="box"包含在DIV中且class="entry"没有右手边距:

我的HTML代码:

<div class="entry">

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box I Want to remove right hand margin on this div -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box I Want to remove right hand margin on this div -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box -->

    <div class="box">
        SOME HTML....
    </div><!-- end .box I Want to remove right hand margin on this div -->

    </div>
    <!--end entry-->

我尝试使用jQuery:

   <script>
        $(document).ready(function(){
            $("div.entry:nth-child(3)").css("margin", "0px");
        });
   </script>

我不能让这个工作有人可以帮忙吗?提前谢谢!


感谢所有帮助提供解决方案的人确实是正确的。我正在编写一个提供的模板,发现JQuery已设置为以兼容模式运行,因此$是问题。

4 个答案:

答案 0 :(得分:11)

来自文档(我的重点)

  

匹配作为其父的第n个孩子的所有元素,或者是父母的偶数或奇数子元素。

您当前正在选择父级,而您应该选择孩子:

$("div.entry > div:nth-child(3)").css("margin", "0px");

答案 1 :(得分:7)

nth-child似乎也是非0索引。如果您习惯于在0处编制索引,请记住这一点。

答案 2 :(得分:3)

您的:nth-child选择器未引用n,您需要在选择器中引用内部div

尝试:

$(document).ready(function(){
  $("div.entry div:nth-child(3n)").css("margin", "0px");
});

答案 3 :(得分:1)

试试这个选择器:

div.entry > div.box:nth-child(3n)