2017-12-11 24 views
0

要素ノードを反復処理するためにelement.childrenを使用し、テキストノードを処理するためにchildNodesを使用しました。 テキストノードと要素ノードの両方をどのように反復処理できますか?テキストノードと要素ノードを反復する

let children = this.element.children; 
for (let i = 0; i < children.length; i++) { 
    // do something with children[i] element 
} 
let childrenNodes = this.element.childNodes; 
for (let i = 0; i < childrenNodes.length; i++) { 
    if (childrenNodes[i].nodeName == "#text") { 
    // do something with childrenNodes[i] text node 
    } 
} 

childNodesを持つ要素にアクセスできますか?

+0

いくつかのコード(現行のHTML/JSなど)を投稿してください。 –

答えて

0

だけの要素とテキストノードの両方が含まれ、childNodesを使用します。

const childNodes = this.element.childNodes; 
for (let i = 0; i < childNodes.length; i++) { 
    if (childNodes[i].nodeType == 1) { 
    // do something with childrenNodes[i] element 
    } else if (childNodes[i].nodeType == 3) { 
    // do something with childrenNodes[i] text node 
    } 
} 

あなたがいないnodeNameにより、nodeTypeによってそれらを区別すべきです。

+0

ありがとうございます。 – asv

+0

ノード要素( 'childNodes [i] .nodeType == 3'で見つかった)がある場合、その要素への参照はどのようにすることができますか? 私がconsole.log(childNodes [i])を書くと asv

+0

@asvそれは起こらないはずです、コメントノードにはnodeTypeがあります8.この問題を示す[mcve]を作れますか? – Bergi

関連する問題