问答详情
源自:2-11 jQuery选择器之子元素筛选选择器

a 的父元素不是class="div"吗?为什么是last-div

a 的父元素不是class="div"吗?为什么是last-div

提问者:qq_随便先生论芝麻的重要性_03960610 2016-11-08 12:31

个回答

  • 慕粉wz
    2016-11-09 17:41:31
    已采纳

    关键要分清楚:first 和:first-child的区别。这两者区别很大。

    比如 $("body a:first") 和$("body a:first-child")区别就特别大

    1,first-child 可以取多个a标签,只要该a标签是其父元素(父元素不一定是body,可以是任意的div,tr等等)的第一个元素,就会被匹配。a:first-child应该连在一起理解,即条件为父元素的第一个子元素的a标签。满足这个条件的就可能是多个呀。

    2,first,就好理解了,查找出所有的a标签,再取第一个。

    好好理解下吧。

  • qq_随便先生论芝麻的重要性_03960610
    2016-11-09 14:55:52

    你说的可以理解,但如果在class=“last-div”下的a元素index不应该是0、1、2、3、4、5、6吗?first也应该只有一个啊,class=“div”下的a就应该有3个

  • qq_感谢永远有歌把心境道破_03171663
    2016-11-08 20:21:19

    题目中并没有说a的父元素是last-div啊。

    【查找class="last-div"下的第二个a元素】括号里的是题目中注释的原话。 这里只说了class="last-div"下的a元素可以是子元素也可以是孙元素等等。

    楼主可以翻一下前面将层级选择器的章节,$('.last-div a')这个选择器的意思是找class=last-div下的所有后代a元素,并不只是子元素,加上筛选条件  :nth-child(2)  就是  $('.last-div a:nth-child(2)')  了。

    $('.last-div > a')这样用才是找class=last-div下的所有子元素a。