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

前端之家收集整理的这篇文章主要介绍了为什么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我害怕)。

原文链接:https://www.f2er.com/jquery/182896.html

猜你在找的jQuery相关文章