Как удалить определенный атрибут из всех элементов внутри div? - PullRequest
0 голосов
/ 11 ноября 2019

Как удалить атрибуты style из всех элементов (дочерних элементов) внутри <div class="parent">?

function myFunction() {
  var divsname = Array.prototype.slice.call(document.getElementsByClassName("parent"));
  divsname.forEach(function(div) {
    divs.removeAttribute("style");
  });
}
<div id="container">
  <div class="parent" name="parentone">
    <div id="childone" style="height:10px">
      <div id="childtwo" style="background-color:red"></div>
    </div>
  </div>
  <div class="parent" name="parenttwo">
    <div id="childthree" style="height:10px"></div>
  </div>
</div>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>

1 Ответ

3 голосов
/ 11 ноября 2019

Выберите потомков из .parent, а не элементов с классом parent. Не совсем понятно, хотите ли вы только детей или всех потомков . Используйте правильный комбинатор для ваших целей.

document.querySelectorAll(".parent *") // descendants
document.querySelectorAll(".parent > *") // children

Затем вы можете заменить * на [style], чтобы выбрать только элементы, которые на самом деле имеют style атрибут.

Вместо Array.prototype.slice.call используйте более современный Array.from.

Наконец, просто удалите атрибуты, используя forEach функция стрелки ).

Array.from(document.querySelectorAll(".parent [style]"))
  .forEach((elem) => elem.removeAttribute("style"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...