微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么jQuery自动下套管属性值?

我正在使用直接放入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我害怕)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐