性能上有区别吗
:not([attr="value"])
和
[attr!="value"]
? CSS3 规范是否推荐了一种替代方案?
编辑:
CSS3 规范不包含 [attr!="value"]
选择器。这只是 jQuery 实现的东西。
所以,问题应该是
$(':not([attr="value"])')
和
$('[attr!="value"]')
?
最佳答案
只要有可能,jQuery 就会尝试使用 document.querySelector
或 document.querySelectorAll
,因为这会使用 native 浏览器功能来执行查询。
如果某些内容不在规范中或浏览器不支持,则 jQuery 需要回退到 Swizzle engine ,这通常会比较慢,因为它需要遍历 DOM 本身。
代码流是这样的(伪代码):
try {
document.querySelectorAll(selector);
} catch ( e ) {
Swizzle.querySelectorAll(selector);
}
因此对于支持 :not([attr="value"])
的浏览器来说,它应该(如果实现得好)比 [attr!="value"]
。
这是否会引起注意取决于用例。
关于jquery - :not([attr ="value"]) and [attr! ="value"之间的性能有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23049293/