CSS / jQuery性能-提供更高分辨率的选择器是否更好

说我正在使用CSS或jQuery选择DOM元素,提供更高的分辨率会更快吗?

也就是说,我试图找出以下jquery选择器方法中哪一个在速度方面是最好的:

Method 1. $("#name")
Method 2. $("input#name")
Method 3. $("div input#name")

或者这些CSS选择器:

Method 1. #name {font-weight: bold;}
Method 2. input#name {font-weight: bold;}
Method 3. div input#name {font-weight: bold;}

Method 3似乎可以使选择器的工作变得容易,因为它可以更快地缩小到元素范围?

hhhhttty 回答:CSS / jQuery性能-提供更高分辨率的选择器是否更好

考虑这些jQuery语句

Method 1. $("#name")
Method 2. $("input#name")
Method 3. $("div input#name")

这三个语句都同样好,因为id始终需要是唯一值。因此,除非dom具有多个具有相同ID的字段

,否则$("#name")$("div input#name")相同

现在考虑使用css行,这取决于特定性。

#name { color: red; }
input#name { color: yellow; }
div input#name { color: green; }
<div>
  <input id='name'>
</div>

,

我认为选择器越小,性能越好。我隐约记得在某处读到选择器是从右到左评估的。因此,最先评估最后一个子选择器,然后将结果列表向左移动,将其压缩。如果您担心某个实例,可以随时通过传递可能的选择器并自己查看来测量querySelctorAll()$()前后之间的时间,从而检查该特定实例的性能。

本文链接:https://www.f2er.com/3154951.html

大家都在问