3

Chrome 不<linearGradient>使用 D3.js进行选择。在下面的代码中,所有选择都是空的。

var defs = d3.select("body").append("svg").append("defs");
defs.append("linearGradient");
defs.append("linearGradient");
console.log(defs.selectAll("linearGradient")); // empty
console.log(defs.selectAll("lineargradient")); // empty
console.log(d3.selectAll("linearGradient")); // empty

如果你替换<linearGradient>为说<mask>没关系。

var defs = d3.select("body").append("svg").append("defs");
defs.append("mask");
defs.append("mask");
console.log(defs.selectAll("mask")); // 2 elements selected

Firefox 对两者都适用。我正在使用 Chrome 28.0.1500.95。请提出一种选择渐变的方法。

4

1 回答 1

8

这是 webkit 中的一个错误 - 请参阅错误报告。简短的回答是因为它刚刚坏了。您可以通过保留对需要修改的渐变的显式引用来解决此问题,例如

var grad1 = defs.append("linearGradient");
于 2013-08-18T11:05:05.833 回答