2012-11-30 3 views
1

각 선택 요소에 모든 항목 옵션을 추가하는 코드를 만들려고합니다. 어떤 이유로 마지막 선택 요소 만 옵션을 가져옵니다.
다음은 코드입니다.마지막 선택 요소 만 옵션 요소를 가져옵니다.

for (var i=0; i<itemcount; i++) { 
    var newE=document.createElement("span"); 
    var newD=document.createElement("input"); 
    var newS=document.createElement("select"); 
    newE.id="itemcontainer"; 
    newD.id="drop"+i; 
    newS.id="sel"+i; 
    for (var j=0; j<itemos.length; j++) { 
     newS.appendChild(itemos[j]); 
    } 
    newD.type="checkbox"; 
    newD.name="drop"; 
    newE.appendChild(newD); 
    newE.appendChild(document.createTextNode("Drop? ")); 
    newE.appendChild(newS); 
    container.appendChild(newE); 
    container.appendChild(document.createElement("br")); 
} 

무엇이 잘못 되었나요?

답변

4

단일 <option> 요소는 한 번에 하나만 <select>에있을 수 있습니다. 많은 다른 <select> 목록에 동일한 옵션을 추가하려고하는데 작동하지 않습니다.

<select>에 대해 새 <option> 개의 요소를 만들어야합니다.

+2

이러한 스팬, 입력, 선택 및 빌드 옵션이 많은 경우 기본 객체를 캐싱하고 .clone()을 사용하여 마지막으로 확인한 것처럼, 매번 새로운 .createElement()를 수행하는 것보다 훨씬 빠릅니다. 문자열을 사용한 직접 .innerHtml() 호출이 더 빠를 수도 있습니다. –

+0

@ mori57 확실히 좋은 점. – Pointy

+0

@ mori57 네, 매번 옵션을 다시 만들어 냈습니다. – gskartwii

관련 문제