我遇到了一个在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
这是某处记载的已知限制吗?还有其他无法删除的“特殊”属性吗?
答案 0 :(得分:0)
我遇到了同样的问题。
在您的问题中,我读到您并不是真正地寻求解决方案,但是可能是对于那些追随Google并在此问题上胡思乱想的人……
node.attributes.removeNamedItem('style');
if (node.attributes.getNamedItem('style') != null)
node.attributes.getNamedItem('style').value = '';
这当然不会删除该属性,但至少会删除其中的CSS。
希望这对某人有帮助。