当前位置 : 主页 > 网页制作 > JQuery >

jquery – $(“div p”)是否相当于$(“div * p”)?

来源:互联网 收集:自由互联 发布时间:2021-06-15
明星运算符似乎会递归所有选定的孩子,这与空间相同.我发现空间就像一个运算符,但$(“div p”)与$(“div * p”)的作用相同. 不,这不等同.星形运算符意味着至少需要一个元素位于它们之间
明星运算符似乎会递归所有选定的孩子,这与空间相同.我发现空间就像一个运算符,但$(“div p”)与$(“div * p”)的作用相同. 不,这不等同.星形运算符意味着至少需要一个元素位于它们之间.等价的选择器表达式

p * div, p > div

匹配两种情况. Selectors level 4很可能会引入另一个操作符

p >> div

这实际上相当于p< space> div.

对于jQuery部分:如果你编写$(‘p div’)或任何其他选择器,你将熟悉HTML中的自动关闭元素.在这种特定情况下:div元素不能位于p元素内.当遇到div时,浏览器会自动关闭p.如果你从这开始:

<p>
    <div></div>
</p>

你的DOM看起来像这样:

<p></p>
<div></div>
<p></p>

因此永远不会匹配任何p div,p * div,…见这个JSFiddle(注意:会两次做一个警报()).

编辑:正如@Bharadwaj在评论中指出的那样,p * div的符号是一个错误,永远不会匹配.原因是,*是placeholder for an element name,因此必须用空格包围.

网友评论