我想使用d3更改SVG somen元素属性。实际上,我将通过AJAX从服务器数据下载,这些数据将根据数据值更改SVG元素的颜色。使用d3更改SVG元素
这是我的一段代码来改变SVG元素图形行为:
SVG示例文件:
<svg width="640" height="480" xmlns="http://www.w3.org/2000/svg">
<!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
<g>
<title>Layer 1</title>
<rect id="box1" height="54" width="106" y="73" x="53" stroke-width="2" stroke="#000000" fill="#FF0000"/>
<ellipse ry="39" rx="41" id="circle1" cy="103" cx="246" stroke-width="2" stroke="#000000" fill="#FF0000"/>
<path id="multiline1" d="m395,105l70,10c0,0 11,63 11,64c0,1 -3,60 -9,61c-6,1 -75,1 -79,1c-4,0 -43,-16 -42,-25c1,-9 -4,-29 1,-42c5,-13 14,-57 14,-58" stroke-linecap="null" stroke-linejoin="null" stroke-dasharray="null" stroke-width="2" stroke="#000000" fill="#FF0000"/>
</g>
</svg>
HTML代码:使用VS2012,ASP
<script src="~/Scripts/d3-master/d3.min.js" charset="utf-8"></script>
<object id="svgobject" type="image/svg+xml" data=".\svg\mainscreen.svg">
</object>
<script type="text/javascript">
var element = d3.selectAll("svgobject");
var item = element.property("box1");
item.style("color", "blue");
</script>
I'm。 NET与剃刀。
浏览器(丁目)说,在控制台上:
遗漏的类型错误:无法读取空
我曾尝试没有成功不同方法的特性“盒1”。
[编辑]
工作守则(不得不丢开D3):
<script type="text/javascript">
var mySvg = document.getElementById("svgobject");
alert(mySvg);
mySvg.addEventListener("load", function() {
var svg = mySvg.getSVGDocument();
alert(svg);
svg.getElementById("box1").setAttribute("fill", "green");
});
</script>
你试过'd3.select( “矩形”)的风格( “补”, “蓝”);'? –