DOM NamedNodeMap.removeNamedItem () не работает для атрибута «стиль» в Microsoft Edge? - PullRequest
0 голосов
/ 04 января 2019

Я столкнулся со странной ошибкой (функцией?) NamedNodeMap.removeNamedItem(), запущенной в Microsoft Edge:

Я могу использовать 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 голосов
/ 23 января 2019

Я столкнулся с той же проблемой.

В вашем вопросе я прочитал, что вы на самом деле не спрашиваете решения, но, возможно, для тех, кто следит за Google и сталкивается с этим ...

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

Это конечно не удалит атрибут, но по крайней мере CSS внутри будет удален.

Надеюсь, это кому-нибудь поможет.

...