Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 选择属性中不包含字符串的元素_Jquery_Jquery Selectors - Fatal编程技术网

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

Jquery 选择属性中不包含字符串的元素,jquery,jquery-selectors,Jquery,Jquery Selectors,假设我有一些 <TR style = "background-color : red ;"> 工作完美。但它说: [name!=value]无法利用本机DOM querySelectorAll方法提供的性能提升。为了在现代浏览器中获得更好的性能,请使用$纯css选择器,而不是“[name=value]” 所以我想知道:我的表情是最好的还是类似于: $('.detailtable tr').not('[style~="darkgray"]') // this doesn't work

假设我有一些

<TR style = "background-color : red ;">
工作完美。但它说:

[name!=value]无法利用本机DOM querySelectorAll方法提供的性能提升。为了在现代浏览器中获得更好的性能,请使用$纯css选择器,而不是“[name=value]”

所以我想知道:我的表情是最好的还是类似于:

$('.detailtable tr').not('[style~="darkgray"]') // this doesn't work!
表现更好吗?最后一个表达的正确方式是什么

提前谢谢

有趣的是,伪选择器(如:not)实际上比使用初始选择器旁边的函数慢。事实上它们的速度显然是原来的两倍

我引述:

$IDP; $id.findp; 你会感到惊讶吗 第二种方法的速度是第一种方法的两倍多?知道 哪些选择器优于其他选择器?为什么是一个非常关键的建筑物 阻止,以确保您的代码运行良好,不会妨碍您的工作 用户等待事情发生


我会和你一起去的,不是我的朋友

如果确实要选择属性中不包含字符串的元素,则应使用*=而不是~=,如下所示:

$('.detailtable tr').not('[style*="darkgray"]');
这是我的建议

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

看这个

编辑:如果您非常关心IE8,那么使用.not方法而不是:not选择器将给您带来一点性能提升。原因很简单:IE8确实支持属性选择器,但不支持否定选择器。

从中可以看出,即使使用document.queryselectoral,您当前使用的也应该可以很好地工作


也许您可以测试它是否按预期工作。

$”。detailtable tr“。而不是“[style~=darkgray]”应该工作相同。如果您担心性能,请测试它:。正如我在评论中所写的,$'.detailtable tr'.not'[style~=darkgray]'不起作用…:not在很多年前被添加到草稿中,jQuery很快就开始使用它…@BoltClock,但是在CSS级别的列中首先为Negation伪类定义了3。因此,我认为这是最近添加到选择器列表中的内容。请提供任何参考资料,以确认jQuery先前已获取此信息。在编辑之前,我会等待您的回复。CSS3只是最近才提出的一个建议,但它在草稿中已经有10多年了,而且:还没有出现这么久。请转到规范页面并继续单击以前的版本。jQuery附带:不是在它的第一个主要稳定版本中-它说版本在中添加了:1.0。是的,它将与querySelectorAll一起工作,因为它是一个有效的CSS选择器。另请参见:我本打算写一小段关于人们应该如何停止关注性能的内容,但我发现人们可能已经太在意性能了,而不想读这些内容,所以我不想写它…@BoltClock-当然,原生的:not选择器和jQuery增强的:not选择器之间存在差异。但是,在这种情况下,可以安全地假设本机实现可以很好地处理它。@BoltClock-我非常关心性能,但我很乐意听取您的意见。愿意分享吗?即使是很小的小说篇幅,我也会读它……嗯,我倾向于只在性能至关重要的时候才担心性能。除非发现瓶颈,否则我不会尝试优化或折磨每一行代码。也就是说,编写尽可能多地利用querySelectorAll的选择器一直是一种好的做法,但在我的书中,为了节省毫秒而故意将事情变得过于复杂是过火了…@Pierpaolo-给定以下元素:,使用[class~=two]将匹配,而使用[class~=two]将不匹配。[name*=two]将在这两种情况下匹配。根据,伪选择器是所有选择器中速度最慢的。我没有发现任何证据表明它们比之后链接jQuery函数更快。再说一遍,仅仅因为我没有找到上述证据并不意味着它不存在
$('.detailtable tr').not('[style~="darkgray"]') // this doesn't work!
$('.detailtable tr').not('[style*="darkgray"]');