问答详情
源自:2-16 综合案例

为什么这两种写法的效果是不一样的,求解。

首先这是正确的写法:
<script type="text/javascript">
    //不分男女,选中第一类衣服中第9个a元素,并改变颜色
    //这里用了nth-child 选择的他们所有父元素的第n个子元素
    $(".tag dd>a:nth-child(10)").css('color','#66CD00');
</script>
这种写法成功选择到了“吊带背心”和“嘻哈裤”两个。
然后就是另一种写法:
<script type="text/javascript">
    //不分男女,选中第一类衣服中第9个a元素,并改变颜色
    //这里用了nth-child 选择的他们所有父元素的第n个子元素
    $(".tag dd>a:eq(8)").css('color','#66CD00');
</script>
使用了这种写法之后,类tag下的标签元素dd下的子元素标签a元素的第9个元素标签,
运行之后只选中了“吊带背心”,“嘻哈裤”没有被选中,求解。


提问者:盛夏Zzz 2017-04-29 10:58

个回答

  • qq_羽之翼_0
    2017-05-03 20:42:03

    我认为这个原因就像是:first与:first-child之间的区别一样,一个是前者只鞥选择一个,后者选择的是多个。eq()也只能选择一个剩下那个被省略了。。。。新手个人理解

  • 慕粉2229524533
    2017-04-29 14:50:44

    a:nth-child(10)是指dd的第十个的子元素(看具体的是第几个孩子),a:eq(8)是指dd子元素的第9个a元素(也就是只看a元素的个数,不看具体的是第几个孩子)