我对jquery选择器句子的这三种用法感到很困惑。这三个人似乎都会选择带有p
类的标记intro
。为什么有3种不同的选择句?
$("p").filter(".intro")
$("p.intro")
$("p .intro")
答案 0 :(得分:4)
前两个最终会有"p"
和".intro"
的对象(例如,完全相同的对象会满足这些选择器)。
最后一个是".intro"
的对象,但有一个父"p"
。
进一步说明:
$("p").filter(".intro")
获取所有"p"
元素。然后将该集合仅减少为".intro"
。
$("p.intro")
查找"p"
和".intro"
的所有对象(在同一对象上)。不同的选择标准之间没有空格意味着它们必须在同一个对象上找到。
$("p .intro")
查找具有父".intro"
的所有"p"
个对象。不同选择标准之间的空格意味着它们出现在层次结构的不同级别(例如,不在同一对象上 - 父对象,然后是子对象,但是在它们之间的任意数量的级别)。为了与上面两个创建一个小的对称性,这个结果给出了相同的结果:
$("p").find(".intro");