jQuery attr()无法设置属性

时间:2011-07-02 10:11:33

标签: javascript jquery svg attr

我正在尝试通过svg的transform旋转图像。这是我的代码:

<svg width="100" height="100"> 
   <image id="trns" transform="rotate(90,50,50)" width="100" height="100" xlink:href="logo.png"/> 
</svg>

当页面加载时,这会成功将logo.png旋转90度。此外,当我在firbug的HTML标签中将90更改为其他数字时,旋转也会相应更改。但是当我尝试使用jQuery更改值时,没有任何反应:

$('#trns').attr('transform', 'rotate(60, 50,50)');

我的attr行没有萤火虫做什么?

4 个答案:

答案 0 :(得分:7)

在这里工作正常(使用jQuery 1.6.2): http://jsfiddle.net/niklasvh/k3Grd/

确保在DOM准备就绪后调用它:

$(function(){
 $('#trns').attr('transform', 'rotate(60,50,50)');
});

答案 1 :(得分:4)

确实非常奇怪,这似乎有效

$('#trns')[0].setAttribute('transform','rotate(20,50,50)')

另外,如果你看看$('#trns')。attr('transform'),你就会得到一个对象..现在没有足够的时间来研究它。

答案 2 :(得分:3)

如果您使用的是jquery&gt; = 1.6,请尝试使用prop代替attr
希望这可以帮助。干杯

答案 3 :(得分:0)

.attr()在3.1.1中像这样工作

.attr({ style: "prop : val; prop : val; prop : val" })

这可能是解决版本问题的方法。