之间是否存在性能差异
:not([attr="value"])
和
[attr!="value"]
? CSS3 规范是否推荐一种替代方案?
编辑:
CSS3规范不包含[attr!="value"]
选择器。这只是jQuery实现的东西。
所以,问题应该是
之间的性能差异$(':not([attr="value"])')
和
$('[attr!="value"]')
答案 0 :(得分:2)
document.querySelector
或document.querySelectorAll
,因为这会使用本机浏览器功能来执行查询。
如果某些内容不符合规范或浏览器不支持,则jQuery需要回退到Swizzle engine,这通常会因为需要遍历DOM本身而变慢。
代码流将是这样的(伪代码):
try {
document.querySelectorAll(selector);
} catch ( e ) {
Swizzle.querySelectorAll(selector);
}
因此,对于支持:not([attr="value"])
的浏览器,它应该(如果实现得好)比[attr!="value"]
更快。
这是否会引起注意取决于用例。