2010-12-16 4 views
0

일부 HTML을 포함하는 변수가 있습니다. 이 HTML은 문서 본문에 없습니다 - 변수에서만! 이것으로부터, 각 li의 내용을 추출하여 배열에 넣으므로 각 목록 항목에 새로운 내용을 만들 수 있습니다.목록 항목을 자바 스크립트 배열로 만드는 방법

이렇게 할 수 있습니까?

var myList = "<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>"; 
myList.getElementByTagName('LI') = myLiContents; 

고마워요!

답변

1

당신은 더미 요소를 생성하고 HTML 문자열로 해당 요소의 innerHTML를 설정할 수 있습니다 당신은 :

var myList = "<ul><li>item 1</li><li>item 2</li><li>item 3</li></ul>", 
    dummy = document.createElement('div'); 

dummy.innerHTML = myList; 
console.log(dummy.getElementsByTagName('li')); 

참고 그러나 getElementsByTagName의 결과는 하지 배열하지만 nodeList,입니다 배열과 같은 객체. 그래도 nodeList을 통해 루프를 실행하여 실제 배열을 만들 수 있습니다.

1

문자열에 getElementByTagName을 사용할 수 없습니다 ... 문서에 삽입 된 HTML 요소에서만 사용할 수 있습니다. 그러나 당신이 성취하려는 것을 위해, 당신은 그것을 실제로 할 필요가 없습니다. 이 같은 배열을 생성합니다

var li = myList.match(/<li>.*?<\/li>/gi); 

:

["<li>item 1</li>", "<li>item 2</li>", "<li>item 3</li>"] 

가 추가 <li> 제거하고하려면를 </li> 당신은 할 수 있습니다 당신은 당신의 문자열에서 모든 <li>의를 추출하는 정규 표현식을 사용할 수 있습니다 각 항목을 반복하면서 문자열 교체 :

li[i].replace(/<\/?li>/gi, ""); 
관련 문제