[jquery] jQuery를 사용하여 DropDownList에 옵션을 어떻게 추가합니까?

질문에 따르면 jQuery를 사용하여 DropDownList에 새 옵션을 어떻게 추가합니까?

감사



답변

추가 플러그인을 사용하지 않고

var myOptions = {
    val1 : 'text1',
    val2 : 'text2'
};
var mySelect = $('#mySelect');
$.each(myOptions, function(val, text) {
    mySelect.append(
        $('<option></option>').val(val).html(text)
    );
});

많은 옵션이 있거나이 코드를 매우 자주 실행해야하는 경우 DOM을 불필요하게 여러 번 수정하는 대신 DocumentFragment 를 사용해야합니다 . 소수의 옵션에 대해서만 가치가 없다고 말하고 싶습니다.

——————————- 추가 —————— ————–

DocumentFragment속도 향상에는 좋은 옵션이지만 document.createElement('option')IE6 및 IE7에서 지원하지 않기 때문에 옵션 요소를 사용할 수 없습니다 .

우리가 할 수있는 일은 새로운 select 요소를 만들고 모든 옵션을 추가하는 것입니다. 루프가 완료되면 실제 DOM 객체에 추가하십시오.

var myOptions = {
    val1 : 'text1',
    val2 : 'text2'
};
var _select = $('<select>');
$.each(myOptions, function(val, text) {
    _select.append(
            $('<option></option>').val(val).html(text)
        );
});
$('#mySelect').append(_select.html());

이런 식으로 DOM을 한 번만 수정합니다!


답변

플러그인이 없으면 많은 jQuery를 사용하지 않고도 약간 더 오래된 학교로 갈 수 있습니다.

var myOptions = {
    val1 : 'text1',
    val2 : 'text2'
};
$.each(myOptions, function(val, text) {
    $('#mySelect').append( new Option(text,val) );
});

옵션 a)가 기본적으로 선택된 값인지 여부와 b)를 지금 선택해야하는지 여부를 지정하려면 두 개의 매개 변수를 더 전달할 수 있습니다.

    var defaultSelected = false;
    var nowSelected     = true;
    $('#mySelect').append( new Option(text,val,defaultSelected,nowSelected) );


답변

플러그인 : jQuery 선택 상자 . 당신은 이것을 할 수 있습니다 :

var myOptions = {
        "Value 1" : "Text 1",
        "Value 2" : "Text 2",
        "Value 3" : "Text 3"
    }
    $("#myselect2").addOption(myOptions, false); 


답변

DropDown을 먼저 지우고 싶을 수도 있습니다. $ ( ‘# DropDownQuality’). empty ();

MVC의 컨트롤러가 항목이 하나만있는 선택 목록을 반환하도록했습니다.

$('#DropDownQuality').append(
        $('<option></option>').val(data[0].Value).html(data[0].Text));    


답변

처음에 나열 할 항목 추가

$("#ddlList").prepend('<option selected="selected" value="0"> Select </option>');

마지막에 나열 할 항목 추가

$('<option value="6">Java Script</option>').appendTo("#ddlList");

jQuery를 사용한 일반적인 드롭 다운 작업 (Get, Set, Add, Remove)


답변

Peas note @Phrogz의 솔루션은 IE 8에서 작동하지 않지만 @nickf는 모든 주요 브라우저에서 작동합니다. 다른 접근법은 다음과 같습니다.

$.each(myOptions, function(val, text) {
    $("#mySelect").append($("&lt;option/&gt;").attr("value", val).text(text));
});


답변

U는 직접 사용할 수 있습니다

$"(.ddlClassName").Html("<option selected=\"selected\" value=\"1\">1</option><option value=\"2\">2</option>")

-> 여기서 직접 문자열을 사용할 수 있습니다