虽然多个类可以分配给一个id,但是一个类可以分配多个id吗?如果是,那么我将节省大量时间/计算资源。
我试过:
d3.select('#id1','#id2').classed('my_class',true);
Run Code Online (Sandbox Code Playgroud)
我也尝试过这样的 js 样式:
d3.select('#id1','#id2').style('display','none');
Run Code Online (Sandbox Code Playgroud)
只有第一个 id 有效。
有没有一种简洁的方法来处理这种情况?如果没有某种形式的解决方法,我会感到惊讶。我只是在这种情况下找不到一个。
问题下面的评论包含解决问题的所有信息。不过,对于未来的读者,我想在这里写下一些观点。
首先:一定要阅读文档。除少数例外,它包含您需要的所有信息。例如,让我们看看它关于select的内容:
选择与指定选择器字符串匹配的第一个元素。(强调我的)
现在让我们看看你的代码:
d3.select('#id1','#id2')
// ^--------- two strings, separated by a comma
Run Code Online (Sandbox Code Playgroud)
那不是一个字符串。这是一个字符串:
d3.select('#id1, #id2')
// ^--------- just one string here!
Run Code Online (Sandbox Code Playgroud)
第二个问题:select
选择与字符串匹配的第一个元素。所以,你想要selectAll
,不想要select
。
解决方案:它必须是:
d3.selectAll("#id1, #id")
Run Code Online (Sandbox Code Playgroud)
这是一个演示,点击按钮:
d3.select('#id1','#id2')
// ^--------- two strings, separated by a comma
Run Code Online (Sandbox Code Playgroud)
d3.select('#id1, #id2')
// ^--------- just one string here!
Run Code Online (Sandbox Code Playgroud)