jquery - :not([attr ="value"]) and [attr! ="value"之间的性能有区别吗?

标签 jquery css

性能上有区别吗

:not([attr="value"])

[attr!="value"]

? CSS3 规范是否推荐了一种替代方案?

编辑:

CSS3 规范不包含 [attr!="value"] 选择器。这只是 jQuery 实现的东西。

所以,问题应该是

$(':not([attr="value"])')

$('[attr!="value"]')

?

最佳答案

只要有可能,jQuery 就会尝试使用 document.querySelectordocument.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/

相关文章:

javascript - ASP.NET 上的 Jquery 掩码不起作用

javascript - 创建类名的构建系统

javascript - 如何删除自动完成中的一个特定值?

javascript - 调用preventDefault()时AJAX表单重新加载页面

html - CSS 不会在我需要的地方对齐

javascript - 自动完成和模态

jquery - 使用 transform 属性并同时使元素正确居中

html - 智能手机上的选择尺寸为正常尺寸

javascript按钮按键在第n次点击事件中被触发n次

php - 使用 Ajax 调用在 CodeIgniter 中填充在线用户的 div(每 10 秒更新一次)