2017-12-11 19 views
0

요소 노드를 반복하고 텍스트 노드를 childNodes로 사용하려면 element.children을 사용했습니다. 텍스트 노드와 요소 노드를 모두 반복 할 수 있습니까?텍스트 노드와 요소 노드를 반복하십시오.

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