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

Bre*_*red 24 jquery

我正在使用直接放入HTML文件的SVG

<svg>
   Contents...
</svg>
Run Code Online (Sandbox Code Playgroud)

使用javascript/jQuery我想向SVG添加一个属性

$("svg").attr("viewBox", "0 0 166 361");
Run Code Online (Sandbox Code Playgroud)

以下是运行上述脚本后修改的SVG

<svg viewbox="0 0 166 361">
   Contents...
</svg>
Run Code Online (Sandbox Code Playgroud)

注意它放置viewbox而不是viewBox.由于viewbox(小写)没有做任何事我需要它是viewBox(camelcase)

有任何想法吗?

**更新**

我运行了一个小测试,我从服务器端渲染了viewBox属性,然后我运行了上面的脚本.你可以看到1.从服务器端渲染时,它很好.2. 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>
Run Code Online (Sandbox Code Playgroud)

Eri*_*ips 23

我可能依赖于您的编码文档类型. 对于所有HTML元素和属性名称,XHTML文档必须使用小写.我不确定HTML.

更新2

我能找到的唯一解决方案是使用:

$("svg")[0].setAttribute("viewBox", "0 0 166 361");
Run Code Online (Sandbox Code Playgroud)

更新

我无法解释它,我在自己的主机上测试,因为JsFiddle总是使用XHTML(嘘!).在所有情况下它都是小写的,但它仍然是FF,Chrome和IE9中的SVG元素(我不知道它们是否有效,因为我不知道SVG我害怕).

Firefox示例 Chrome示例 IE示例