我正在研究一种使用大脑svg图像的可视化工具。现在这个svg的路径充满了颜色。我想遍历所有这些路径以将填充颜色设置为白色,但由于某种原因我无法获得该元素。
可以看到项目here。 svg位于div
内,我甚至为div分配了一个标识符brain
。 svg本身的标识为svg2
。到目前为止,我已尝试过以下内容:
function clearBrainColors() {
var brain = d3.select("#svg2");
console.log(brain);
var paths = brain.selectAll("path");
console.log(paths.length);
brain.selectAll('path').each(function(d,i) { console.log(this); });
}
但它在选择的数组[0]组件中输出null,在paths.length中输出0。
我也试过使用
这样的行 var brain = d3.select("#brain svg");
和var brain = d3.select("#brain svg#svg2");
但这些也不起作用。
那么,如何使用d3选择大脑svg?
答案 0 :(得分:0)
决定将svg内联为apparently speeds things up。
我用来填充svg的代码现在是:
$("#svg2").find("path").each(function(){
$(this).css({ fill: "#ff0000" });
});
答案 1 :(得分:0)
您可以尝试使用setTimeOut(),例如
setTimeOut(function() {
var brain = d3.select("#svg2");
console.log(brain);
}, 1000);
这可能是svg当场生成,d3当时无法获取。
希望这有帮助:)