更改克隆的svg元素的属性

时间:2012-03-20 23:57:06

标签: jquery svg

我是jQuery的新手,在克隆之后尝试更改SVG元素的属性,但属性不会改变。我可以告诉它成功复制并附加矩形(你可以告诉因为透明度),但它并没有像我期望的那样将新矩形向右移动。有谁知道为什么这不起作用?

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $("button").click(function(){
                $("rect#current").clone().attr("x","10").appendTo($("svg"));
            });
        });
    </script>
</head>
<body>
    <svg width="100" height="20">
        <rect y="0" x="0" height="10" width="10" id="current"
              style="fill:#000000;fill-opacity:0.1;stroke:#000000;stroke-width:1;stroke-opacity:0.5;"/>
    </svg><br/>
    <button>Clone</button><br>
</body>
</html>

1 个答案:

答案 0 :(得分:4)

似乎在这里工作:

http://jsfiddle.net/jtbowden/BzJtU/

还有其他事情发生吗?我还要提到你需要在克隆元素后更改id,否则最终会得到两个具有相同id的元素,这些元素不是有效的XML。

这是一个小提琴,我克隆矩形,移动它超过10,并使克隆成为新的#current元素:

http://jsfiddle.net/jtbowden/BzJtU/2/