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

$("#menu div.tag dd a:nth-child(10)")10是什么鬼?用a:eq(8)不行吗

来大神解释下nth-child的原理还有lt;gt;eq的原理

提问者:Vvvvvsion 2017-08-28 13:20

个回答

  • 枫叶咚咚咚
    2017-09-19 09:41:33

    $("#menu div.tag dd a:nth-child(10)")

    括号中的空格是后代选择器,所以选择器$()选择的是:id为#menu标签的后代 -> div标签的后代 -> tag类标签的后代 -> dd标签的后代 -> a标签的第10个元素。

    lt(index)(less than首字母)例子:$(".aaron:eq(2)") //选取第2个(仅选取一个)

    gt(index)(greater than)例子:$(".aaron:gt(3)") // 选取第3个后的所有

    eq(index)(equal)例子:$(".aaron:lt(2)") //选取第2个前所有

    为什么不能用a:eq(8):

    目标是男女装各第一类下的第9个a标签,就是2个a标签,eq()方式只能选取1个。

    :nth-child()方式可以选取多个,所以用这个方式。





  • 我要SSR
    2017-08-30 14:54:57

    emmmm。。。你应该去复习一下前面的内容。。。都有介绍的很详细

  • 慕村1994845
    2017-08-28 20:33:29

    这句代码可以这样理解:(个人意见,供参考):

    先找到a元素的父元素,也就是dd;然后再定位到第九个a元素,

        //而dd下的子元素不止a,第一个就是p元素,那么第九个a元素,

        //自然要索引为dd下的第十个子元素,

        //nth-child(index)是从1开始,eq(index)从0开始


    至于后面几个属性方法,你可以复习前几节内容;这些知识点要经常回顾下,不然很容易学后面忘前面


  • 慕盖茨4767957
    2017-08-28 17:15:57

    eq()只能匹配一个元素,自己测试看效果就知道了