Pie*_*olo 11 jquery jquery-selectors
让我们说我有一些
<TR style = "background-color : red ;">
Run Code Online (Sandbox Code Playgroud)
还有一些
<TR>
Run Code Online (Sandbox Code Playgroud)
(需要注意的是,冒号和分号旁边的空格是有意的,因为我正在处理的页面是以这种方式编写的)
现在,这个:
$('.detailtable tr:not([style~="darkgray"])')
Run Code Online (Sandbox Code Playgroud)
工作得很好.但它在这里说:
[name!="value"]无法利用本机DOM querySelectorAll()方法提供的性能提升.为了在现代浏览器中获得更好的性能,请使用$("your-pure-css-selector").而不是('[name ="value"]')
所以我想知道:我的表达是最好的一个或类似的东西:
$('.detailtable tr').not('[style~="darkgray"]') // this doesn't work!
Run Code Online (Sandbox Code Playgroud)
表现更好?编写最后一个表达式的正确方法是什么?
提前致谢
Jos*_*ber 27
如果你真的想"选择一个属性中不包含字符串的元素",你应该使用*=而不是~=像这样:
$('.detailtable tr').not('[style*="darkgray"]');
Run Code Online (Sandbox Code Playgroud)
这是小提琴.
不,使用.not可能不会更快.querySelectorAll应该能够按原样解析该选择器.
看到这个小提琴.
编辑:如果您关心IE8那么多,那么使用该.not方法而不是:not选择器将为您带来小的性能提升.原因很简单:IE8支持属性选择器,但不支持否定选择器.
| 归档时间: |
|
| 查看次数: |
22257 次 |
| 最近记录: |