【发布时间】:2014-09-19 23:43:27
【问题描述】:
我在使用 jQuery attr 命令修改 HTML 元素的属性时遇到问题。我有一个脚本,它插入一个带有属性stdDeviation 的子元素的SVG 元素。您可以看到 D 字母是大写的。
当我尝试使用
获取属性时$("#myparentdiv feGaussianBlur").attr("stdDeviation"),
无法检索该属性,因为该属性未找到。我尝试在代码中将stdDeviation 属性设置为小写,但是当我尝试使用小写访问它时,它在Internet Explorer 11(在此浏览器上调试)中显示,D 的属性为大写而不是小写。
当我尝试编写属性时,它把第二个属性用小写字母,所以我得到了其中两个属性,一个是小写的 D,一个是大写的。
我不知道该归咎于哪个,jQuery 或 IE11,似乎无法解决这个问题。有什么想法吗?
代码(设置属性后):
<div id="some_id_1">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<filter id="t3">
<feGaussianBlur stdDeviation="0" stddeviation="39" />
</filter>
</defs>
<image filter="url("#t3")" x="0" y="0" width="350.048px" height="768.75px" xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="images/test1.png" />
</svg>
</div>
尝试从代码中访问它:
$("#some_id_1 " + "feGaussianBlur").attr("stdDeviation", radius);
它的作用:将属性设置为小写,而不是我用大写写的。可以看到更新后显示了两次。
【问题讨论】:
-
很高兴看到你的代码
-
feGaussianBlur是 ID 还是类?$("#myparentdiv feGaussianBlur") -
显然 jquery case 折叠了属性名称以及选择器名称 - 这就是为什么找不到元素(
feGaussianBlur变为fegaussianblur)。由于它是wontfix状态,我将依赖于通过纯 JS 对其进行修改。 -
@showdev 解决方案有效。您可以参考其他答案作为答案,我会接受。非常感谢大家
标签: javascript jquery html svg internet-explorer-11