如何在js中设置svg路径样式?

时间:2014-03-13 01:21:57

标签: javascript svg d3.js

我有道路,这就是它在svg中的样子

<path
   style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
   d="m 117.14283,292.36218 c 6.4302,40.00204 17.7957,72.08138 42.8572,97.14285 41.9864,41.98645 170.1489,-58.42248 108.5714,-120 -34.4011,-34.4011 -81.0249,123.66456 -65.7143,154.28572 20.1806,40.36118 166.194,14.76546 134.2857,-17.14286 -49.3132,-49.31326 -75.8868,85.36926 -60,117.14286 30.4479,60.89583 115.0776,-13.49389 97.1429,-31.42857 -3.4884,-3.48837 -113.508,91.67283 -22.8572,157.14285"
   id="path3024"
   inkscape:connector-curvature="0" /> 

我在像这样的js代码中选择它

var path = svg.select("#" + options["pathid"]);

那么如何更改笔画不透明度值?

这种方式不起作用=(

var path = svg.select("#" + options["pathid"])
      .style('stroke', '#ff0000');

=============================================== ======

path.style("stroke-opacity", 0);有效,

alert(path.style("stroke-opacity")); // returns 0, 

但是当我在浏览器中启动svg时没有任何改变,而且代码中的标签根本没有改变。有什么想法吗?

3 个答案:

答案 0 :(得分:0)

使用JavaScript,您可以轻松更改属性。

path.setAttribute('stroke','red');
path.setAttribute('stroke-width','2');

答案 1 :(得分:0)

如果d3已经选择了svg,那么要访问该路径,您可以使用:

var path = svg.select("#path3024")

然后可以如您所示更改样式。

答案 2 :(得分:0)

尝试:

.attr('stroke', '#ff0000');