如何从div内的所有元素中删除特定属性?

时间:2019-11-11 09:49:14

标签: javascript html dom

如何从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 个答案:

答案 0 :(得分:3)

选择.parent后代,而不是类parent的元素。还不清楚您只想要children还是全部descendants。使用适合您目的的组合器。

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

然后,您可以将*替换为[style],以仅选择实际上具有style属性的元素。

使用更现代的Array.from代替Array.prototype.slice.call

最后,只需使用forEach(和arrow function)删除属性即可。

Array.from(document.querySelectorAll(".parent [style]"))
  .forEach((elem) => elem.removeAttribute("style"));