JQuery Attribute Contains Selector在WebKit中不起作用

时间:2014-01-23 20:47:22

标签: javascript jquery jquery-selectors attributes webkit

我有一个javascript可视化产生一组圆圈,其中一些(默认情况下,给定fileTag属性值“当前广告”)应该是可见的,其中一些(给定fileTag属性值“过去的广告”)应该不。示例圈子如下所示:

<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">

为实现这一目标,我使用以下代码:

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

这在Firefox,Opera和Internet Explorer中按预期工作。但是,在Safari / Chrome中,所有圈子都被隐藏(使用上面的代码)或显示所有圈子(如果我删除了第三行:不是)。

我在代码中做错了什么,或者这是一个WebKit错误?如果是后者,对于解决方案的任何想法?

1 个答案:

答案 0 :(得分:0)

我听说not选择器可以有不同的结果......

我还没有尝试过,但你尝过类似的事情:

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

编辑:

.not()方法最终会为您提供比将复杂选择器或变量推送到:not()选择器过滤器更可读的选择。在大多数情况下,这是一个更好的选择。 通过http://api.jquery.com/not-selector/