DOM NamedNodeMap.removeNamedItem()是否不适用于Microsoft Edge中的“样式”属性?

时间:2019-01-04 08:57:24

标签: javascript dom microsoft-edge

我遇到了一个在Microsoft Edge中运行的NamedNodeMap.removeNamedItem()的奇怪错误(功能?):

我可以使用removeNamedItem()删除大多数元素属性,但不能删除style属性。

考虑以下HTML:

<div id="test" class="some classes" style="font-weight:bold;">test div</div>

此JavaScript代码删除了class属性,但没有删除style属性:

var div = document.getElementById('test');

div.attributes.removeNamedItem('class');  ← works
div.attributes.removeNamedItem('style');  ← doesn't work

要复制:https://jsbin.com/pijecihomo/1/edit?html,js,output

这是某处记载的已知限制吗?还有其他无法删除的“特殊”属性吗?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。

在您的问题中,我读到您并不是真正地寻求解决方案,但是可能是对于那些追随Google并在此问题上胡思乱想的人……

    node.attributes.removeNamedItem('style');
    if (node.attributes.getNamedItem('style') != null)
      node.attributes.getNamedItem('style').value = '';

这当然不会删除该属性,但至少会删除其中的CSS。

希望这对某人有帮助。