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

前端之家收集整理的这篇文章主要介绍了为什么jQuery自动下套管属性值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用直接放入HTML文件的SVG
<svg>
   Contents...
</svg>

使用javascript / jQuery我想添加一个属性到SVG@H_301_5@

$("svg").attr("viewBox","0 0 166 361");

以上是运行上述脚本后的SVG@H_301_5@

<svg viewBox="0 0 166 361">
   Contents...
</svg>

注意它使viewBox不是viewBox。由于viewBox(小写)不做任何事情,我需要它是viewBox(camelcase)@H_301_5@

有任何想法吗?@H_301_5@

**更新**@H_301_5@

我运行了一个测试,我从服务器端渲染viewBox属性,然后我运行了上面的脚本。你可以看到1.从服务器端呈现时,没关系。 jQuery没有识别到​​camelCase viewBox属性,并在所有小写中插入另一个。@H_301_5@

<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@H_301_5@

我可以找到的唯一解决方案是使用:@H_301_5@

$("svg")[0].setAttribute("viewBox","0 0 166 361");

更新@H_301_5@

我不能以任何理由解释它,我在自己的主机上测试,因为JsFiddle总是使用XHTML(boo!)。在所有情况下,它是小写的,但它仍然是FF,Chrome和IE9中的SVG元素(我不知道它们是否有效,因为我不知道SVG我害怕)。@H_301_5@

猜你在找的jQuery相关文章