【发布时间】:2011-01-21 11:40:46
【问题描述】:
有如下html sn-p
<div class="something">
<p>Some text</p>
</div>
<div class="somethingElse">
<p>some other text</p>
</div>
我认为下面的 jquery sn-ps 是相同的(会有相同的结果):
$(".something").find("p").css("border", "1px solid red");
$("p", ".something").css("border", "1px solid red");
我的问题是,一个 sn-p 是否比另一个更好,应该使用
【问题讨论】:
-
为什么不使用 $(".something > p")?那是纯 CSS。
-
@Xr:应该是
$(".something p")。 -
$(".something p") 实际上是最慢的可用方法,因为显然 jQuery 将从右到左搜索,首先找到文档中的所有 p 元素,然后过滤它们以找到 .something祖先。 $(".something").find("p") 是最快的,根据我下面的回答。
-
@Xr。 jQuery 仍然是一个 javascript,仅此而已。这个 sintaxis 看起来就像 css,据我了解,它背后没有使用 JavaScript 中的原生 css 机制的魔法。
-
@MaxYari 确实如此。但我认为保留一种语法而不是增加选择是有用的。供您参考,JQuery 基于名为 Sizzle 的选择器库:sizzlejs.com