이상한 문제가 있습니다. 선택의 자식 노드를 통해 가고 싶습니다. 간단한 권리?javascript, dom - select의 자식 노드가 매 2 번으로 번호가 매겨진 이유
<select multiple="multiple" id="selectBoxOne" size="5" class="selectListBox">
<option value="0" id="multiple0" {MULTIPSEL0}>0</option>
<option value="1" id="multiple1" {MULTIPSEL1}>1</option>
<option value="2" id="multiple2" {MULTIPSEL2}>2</option>
<option value="3" id="multiple3" {MULTIPSEL3}>3</option>
<option value="4" id="multiple4" {MULTIPSEL4}>4</option>
<option value="5" id="multiple5" {MULTIPSEL5}>5</option>
</select>
것은 그 DOM은 다음과 같습니다이다 : 그래서 내 HTML입니다
그래서 문제는 내가 가지고있다가 실제 노드 사이의 빈 노드. 실제 노드는 1,2,3,4,5 대신 1,3,5,7,9,11입니다. 그래서 내가 뭔가를 사용한다면 :
alert(document.getElementById('selectBoxOne').childNodes[2].innerHTML);
얻을 수 없습니다.
저는이 스크립트를 여러 곳에서 사용하기 때문에 홀수 만 읽을 수는 없습니다. (다른 곳은 보통이므로 빈 사이에는 아무 것도 없습니다.)
왜 이런 일이 있었는지 또는 어떻게 해결할 수 있습니까? 시간 내 주셔서 감사합니다.
참고 : {MULTIPSEL4} -> 템플릿 변수입니다. 이 경우 empy입니다. 다른 경우에는 select = "selected"입니까?
JS :
for (i = 1; i <= optionNumber; i++)
{
selectOptions[i-1] = document.getElementById('selectBoxOne').childNodes[i].innerHTML;
}
alert(selectOptions);
결과 : 당신이 길을 잘못하고있는
참고 : 텍스트 노드와 요소 노드를 구별하기 위해 [Node.nodeType] (https://developer.mozilla.org/En/DOM/Node.nodeType)을 확인할 수도 있습니다. 또는 단순히 Node.childNodes 대신 [Element.children] (https://developer.mozilla.org/en/DOM/Element.children)을 사용하십시오. –