2013-08-21 2 views
1

에 여러 옵션을 추가하려면을 선택하십시오.html에 여러 옵션 추가 즉시 선택

현재 루프에서 아래 코드를 사용하고 있지만 매번 새로운 옵션을 추가해야하므로 작업 속도가 느려집니다.

코드 조각 : 나는 위처럼 하나 하나를 한 번에 모든 옵션을 추가 할 수없는 경우

s.options[s.options.length]= new Option(url, '1'); 

그래서 나는, 생각, 어쩌면 조금 더 빨리 만들 수 있습니다.

더 빠른 기능을 제안하십시오. 감사합니다

+0

http://www.creativecg.com/addremove-options-from-a-select-box-with-jquery/ –

답변

0

이 시도 :

var tmpOptions = []; 
for(var i=0; i<optionsLength; i++) { 
    tmpOptions[i] = new Option(url, i); 
} 
s.options = tmpOptions; 
+0

그것을 옵션에 아무 것도 표시하지 않습니다 ... pls check in jsfiddle – saadsaf

1

이 시도,

이 는

s.options가 [s.options.length] = 기능 옵션 (URL, '1') { // 문을 이동 여기 };

1

DocumentFragment으로 할 수는 있지만 브라우저 지원에 대해서는 확신이 없습니다. 그것은 확실히 모든 브라우저 (IE 10 포함)의 현재 버전에서 작동하지만 이전 IE에서 작동하지 않습니다.

var frag = document.createDocumentFragment(); 
for (var i = 0; i < 10; ++i) { 
    var option = document.createElement("option"); 
    option.value = "" + i; 
    option.text = "Option " + i; 
    frag.appendChild(option); 
} 

s.appendChild(frag); 

데모 : http://jsfiddle.net/QsNpe/

0

노력이

var dataArr = [{'value':'val1','text':'text1'}, 
       {'value':'val2','text':'text2'}, 
       {'value':'val3','text':'text3'}, 
       {'value':'val4','text':'text4'}, 
       {'value':'val5','text':'text5'}, 
       {'value':'val6','text':'text6'}, 
       {'value':'val7','text':'text7'}]; 

// Removes all options for the select box 
$('#optExample option').remove(); 

// .each loops through the array 
$.each(dataArr, function(i){ 
    $('#optExample').append($("<option></option>") 
        .attr("value",dataArr[i]['value']) 
        .text(dataArr[i]['text'])); 
});