我正在使用直接放入HTML文件的SVG
<svg> Contents... </svg>
使用javascript / jQuery我想添加一个属性到SVG
$("svg").attr("viewBox","0 0 166 361");
以上是运行上述脚本后的SVG
<svg viewBox="0 0 166 361"> Contents... </svg>
注意它使viewBox不是viewBox。由于viewBox(小写)不做任何事情,我需要它是viewBox(camelcase)
有任何想法吗?
**更新**
我运行了一个测试,我从服务器端渲染viewBox属性,然后我运行了上面的脚本。你可以看到1.从服务器端呈现时,没关系。 jQuery没有识别到camelCase viewBox属性,并在所有小写中插入另一个。
<svg version="1.1" id="Layer_1" x="0pt" y="0pt" width="332" height="722" viewBox=" 0 0 100 100" viewBox="0 0 166 332"> ... </svg>
解决方法
我可能依赖于你的编码文档类型。
XHTML documents must use lower case for all HTML element and attribute names.我不确定HTML。
更新2
我可以找到的唯一解决方案是使用:
$("svg")[0].setAttribute("viewBox","0 0 166 361");
更新
我不能以任何理由解释它,我在自己的主机上测试,因为JsFiddle总是使用XHTML(boo!)。在所有情况下,它是小写的,但它仍然是FF,Chrome和IE9中的SVG元素(我不知道它们是否有效,因为我不知道SVG我害怕)。