Published on

JSでDOMのすべての子孫要素に処理する

Authors
  • avatar
    Name
    Kikusan
    Twitter
    let parentNodeList = document.querySelectorAll('#parent *');
    changeAllDescendants(parentNodeList);
    
    function changeAllDescendants(nodeList) {
      for (let elm of nodeList) {
        console.log(elm); //やりたい処理
      }
    }
    

    もしくは

    let parentElm = document.querySelector('#parent');
    changeAllDescendants(parentElm);
    
    function changeAllDescendants(parent) {
      console.log(parent); //やりたい処理
      if (!parent.hasChildNodes) {
        return
      }
      // 次の子へ
      for (let child of parent.childNodes) {
        changeAllDescendants(child);
      }
    }