jquery – 选择不包含属性中的字符串的元素

前端之家收集整理的这篇文章主要介绍了jquery – 选择不包含属性中的字符串的元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
让我们说我有一些
<TR style = "background-color : red ;">

还有一些

<TR>

(需要注意的是,冒号和分号旁边的空格是有意的,因为我正在处理的页面是以这种方式编写的)

现在,这个:

$('.detailtable tr:not([style~="darkgray"])')

工作得很好.但here它说:

[name!=”value”] cannot take advantage of the performance boost provided by the native DOM querySelectorAll() method. For better performance in modern browsers,use $(“your-pure-css-selector”).not(‘[name=”value”]’) instead

所以我想知道:我的表达是最好的一个或类似的东西:

$('.detailtable tr').not('[style~="darkgray"]') // this doesn't work!

表现更好?编写最后一个表达式的正确方法是什么?

提前致谢

解决方法

如果你真的想“选择一个属性中不包含字符串的元素”,你应该使用* =而不是〜=,如下所示:
$('.detailtable tr').not('[style*="darkgray"]');

这是fiddle.

不,使用.not可能不会更快. querySelectorAll应该能够按原样解析该选择器.

fiddle.

编辑:如果你关心IE8那么多,那么使用.not方法而不是:not选择器会给你一个小的性能提升.原因很简单:IE8支持属性选择器,但不支持否定选择器.

猜你在找的jQuery相关文章