2014-02-15 8 views
1

document.getElementsByTagName('p')을 사용하여 페이지에 존재하는 <p> 개의 태그가 있습니다.
내가 원하는 것은 document.querySelectorAll처럼 nodeList에 이러한 태그를 추가합니다. 예를 들어NodeList는 어떻게 만들 수 있습니까?

: 우리가 4 <p> 태그가있는 경우
가 가정 한 페이지에 존재합니다. 4 개의 태그를 nodeList로 추가하려고합니다.

var elem = null, nodList = document.createDocumentFragment(), i; 
elem = document.getElementsByTagName('p'); 
for (i = 0; i < elem.length; i++){ 
    nodList.appendChild(elem[i]); 
} 

그러나 불운은 IE 6 ,7 브라우저에서 잘 특히 작동하지 않습니다

나는 다음과 같은 코드를 만들었습니다.

+0

[NodeList.js] (https://github.com/eorroe/NodeList.js)를 확인하십시오. –

답변

0

문제는 document.getElementsByTagName은 요소의 "라이브"컬렉션을 반환합니다. 루프 내부의 DOM을 수정하고 기본 "라이브"컬렉션도 변경됩니다 (MDN getElementsByTagName 참조). 또는 두 개의 루프 하나를 사용하여 nodeList에 추가 할 요소의 배열을 만들고 두 번째 루프를 nodeList에 추가하십시오.

관련 문제