我有一个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错误?如果是后者,对于解决方案的任何想法?
答案 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/