无法用d3选择svg元素

时间:2015-05-21 10:46:37

标签: javascript svg d3.js

我正在研究一种使用大脑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?

2 个答案:

答案 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当时无法获取。

希望这有帮助:)