Javascript JQuery属性包含选择器在WebKit中不起作用

Javascript JQuery属性包含选择器在WebKit中不起作用,javascript,jquery,jquery-selectors,attributes,webkit,Javascript,Jquery,Jquery Selectors,Attributes,Webkit,我有一个javascript可视化,它生成一组圆圈,其中一些圆圈(给定fileTag属性值“current advertising”)在默认情况下应该可见,而一些圆圈(给定fileTag属性值“past advertising”)不应该可见。示例圆如下所示: <circle id="986" class="node" style="cursor: pointer; fill: rgb(171, 183, 71); display: block;" title="Title" r="6.34

我有一个javascript可视化,它生成一组圆圈,其中一些圆圈(给定fileTag属性值“current advertising”)在默认情况下应该可见,而一些圆圈(给定fileTag属性值“past advertising”)不应该可见。示例圆如下所示:

<circle id="986" class="node" style="cursor: pointer; fill: rgb(171, 183, 71); display: block;" title="Title" r="6.345236822911981" fileTags="BRAND, CURRENT ADVERTISING" fileType="Print" fileDescription="Example" cx="833.5761873699519" cy="344.6269837191289">
这与Firefox、Opera和Internet Explorer中的预期一样有效。但是,在Safari/Chrome中,所有圆圈都被隐藏(使用上面的代码)或显示所有圆圈(如果我用:not删除第三行)


我的代码有没有做错什么,或者这是一个WebKit错误?如果是后者,对解决方案有什么想法吗?

我听说not选择器可能会产生复杂的结果

我还没试过,但你试过类似的东西吗

$( ".node[fileTags*='PAST ADVERTISING']" ).css("display", "none");
$( ".node[fileTags*='CURRENT ADVERTISING']" ).css("display", "inline");
$( ".node" ).not("[fileTags*='ADVERTISING']").css("display", "none");
编辑:

.not()方法最终将为您提供比将复杂选择器或变量推入:not()选择器过滤器更可读的选择。在大多数情况下,这是一个更好的选择。
via

用传统的方式做怎么样->@adeneo-有时候,传统的方式是最好的方式。不得不在获取文件标签时做一些傻事(它一直抛出未定义的代码,但这可能是我的环境的一个特点,而不是你的代码的问题)——但是完成了这些,你的代码片段解决了我的实际问题。谢谢!:)如前所述,该版本的内容导致所有浏览器中的所有圆圈都不可见。这在技术上更为一致,但不是我心目中的结果。。。实际上,我只能在Chrome中使用我的解决方案。我的建议和您的原始代码都不适用于ff或IE。这很奇怪,因为正如我在问题中所说的,我的原始代码在其工作环境中适用于IE/ff。我想知道您的实现有什么不同…您使用的是什么版本的jQuery?我使用的是1.9.1版
$( ".node[fileTags*='PAST ADVERTISING']" ).css("display", "none");
$( ".node[fileTags*='CURRENT ADVERTISING']" ).css("display", "inline");
$( ".node" ).not("[fileTags*='ADVERTISING']").css("display", "none");