【发布时间】:2013-04-07 23:58:47
【问题描述】:
我正在尝试学习 jquery 并有一个问题 -
页面上的 div 元素看起来像 -
<div id ="1">
<p id="first"> one
<p id="second"> one.one
<p id="third"> one.one.one </p>
</p>
</p>
</div>
以下两个选择器都给了我相同的结果 -
$('div p').css({'background-color' : 'blue'});
$('div>p').css({'background-color' : 'blue'});
第二个选择器不应该只返回<div>元素的第一个<p>标签吗?
【问题讨论】:
-
这不是真正的 jquery 问题,而是一个 css 选择器问题。以下是有关它们的更多信息:developer.mozilla.org/en-US/docs/CSS/Getting_Started/Selectors
-
请注意,“正确”的做法(从速度/效率的角度来看)是
$('div').find('p')。这总是比 CSS 选择器方法快。 jsperf.com/jquery-find-vs-css-selector2/2 -
<p>标签的结束标签是可选的。您的代码被解析为<div><p>one</p><p>one.one</p>...。文档:w3.org/TR/html-markup/p.html#p-tags -
@Rocket:对...我在想
p元素不能嵌套,浏览器应该更正它,但我没有费心测试...将删除我的评论,谢谢(和 +1)。