답변:
이것은 IE8에서 작동하지 않았습니다 (아직 FF에서는).
$("#selectList").append(new Option("option text", "value"));
이 DID 작업 :
var o = new Option("option text", "value");
/// jquerify the DOM object 'o' so we can use the html method
$(o).html("option text");
$("#selectList").append(o);
display: table;
되는 NOT 선택 요소에 스타일로 적용. 이는 JS 코드 중단됩니다
var o = new Option('option text', 'value'); o.innerHTML = 'option text'; document.getElementById('selectList').appendChild(o);
개인적으로 옵션을 추가하기 위해이 구문을 선호합니다.
$('#mySelect').append($('<option>', {
value: 1,
text: 'My option'
}));
항목 모음에서 옵션을 추가하는 경우 다음을 수행 할 수 있습니다.
$.each(items, function (i, item) {
$('#mySelect').append($('<option>', {
value: item.value,
text : item.text
}));
});
items={option1:{value:1,text:1},option2:{value:2,text:2}}
다음 구문을 사용하여 옵션을 추가 할 수 있으며 자세한 내용 은 jQuery의 처리 방법 옵션을 방문 하십시오.
$('#select').append($('<option>', {value:1, text:'One'}));
$('#select').append('<option value="1">One</option>');
var option = new Option(text, value); $('#select').append($(option));
value
대신 속성이 잘못되었습니다 ( 대신 val
). 올바른 코드는$('select').append('<option value="1">One</option>');
옵션 이름이나 값이 동적이면 특수 문자를 이스케이프 처리하는 것에 대해 걱정할 필요가 없습니다. 이것에서 간단한 DOM 메소드를 선호 할 수 있습니다.
var s= document.getElementById('mySelect');
s.options[s.options.length]= new Option('My option', '1');
당신은 이것을 시도 할 수 있습니다-
$('#selectID').append($('<option>',
{
value: value_variable,
text : text_variable
}));
이처럼
for (i = 0; i < 10; i++)
{
$('#mySelect').append($('<option>',
{
value: i,
text : "Option "+i
}));
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id='mySelect'></select>
아니면 이것을 시도하십시오
$('#selectID').append( '<option value="'+value_variable+'">'+text_variable+'</option>' );
이처럼
for (i = 0; i < 10; i++)
{
$('#mySelect').append( '<option value="'+i+'">'+'Option '+i+'</option>' );
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id='mySelect'></select>
어떤 이유로 든 $("#myselect").append(new Option("text", "text"));
IE7 +에서 작동하지 않습니다.
나는 사용해야했다 $("#myselect").html("<option value='text'>text</option>");
많은 옵션을 추가하는 경우 성능을 향상시키기 위해 DOM을 한 번만 변경해야합니다.
var html = '';
for (var i = 0, len = data.length; i < len; ++i) {
html.join('<option value="' + data[i]['value'] + '">' + data[i]['label'] + '</option>');
}
$('#select').append(html);
string.join()
문자열 연결에 사용해야하는 성능 향상을 위해
비 jquery 접근 방식을 사용하고 싶습니다.
mySelect.add(new Option('My option', 1));
아래 예와 같이 옵션을 드롭 다운에 동적으로 추가 할 수 있습니다. 여기이 예제에서 나는 출력 스크린 샷과 같이 배열 데이터를 가져 와서 그 배열 값을 드롭 다운에 바인딩했습니다.
산출:
var resultData=["Mumbai","Delhi","Chennai","Goa"]
$(document).ready(function(){
var myselect = $('<select>');
$.each(resultData, function(index, key) {
myselect.append( $('<option></option>').val(key).html(key) );
});
$('#selectCity').append(myselect.html());
});
<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.min.js">
</script>
<select id="selectCity">
</select>
어떤 대답에도 언급되지 않았지만 해당 옵션을 선택하려는 경우 유용합니다.
var o = new Option("option text", "value");
o.selected=true;
$("#mySelect").append(o);
두 가지 방법이 있습니다. 이 두 가지 중 하나를 사용할 수 있습니다.
먼저:
$('#waterTransportationFrom').append('<option value="select" selected="selected">Select From Dropdown List</option>');
둘째:
$.each(dataCollecton, function(val, text) {
options.append($('<option></option>').val(text.route).html(text.route));
});
옵션을 추가하고 jquery validate를 사용할 때 문제가 발견되었습니다. 여러 목록을 선택하려면 하나의 항목을 클릭해야합니다. 이 코드를 추가하여 처리합니다.
$("#phonelist").append("<option value='"+ 'yournewvalue' +"' >"+ 'yournewvalue' +"</option>");
$("#phonelist option:selected").removeAttr("selected"); // add to remove lase selected
$('#phonelist option[value=' + 'yournewvalue' + ']').attr('selected', true); //add new selected
최고의 성능을위한 빠른 포인트입니다.
많은 옵션을 다룰 때는 항상 큰 문자열을 만들고 'select'에 추가하여 최상의 성능을 얻으십시오.
fg
var $ mySelect = $ ( '# mySelect'); var str = '';
$.each(items, function (i, item) {
// IMPORTANT: no selectors inside the loop (for the best performance)
str += "<option value='" + item.value + "'> " + item.text + "</option>";
});
// you built a big string
$mySelect.html(str); // <-- here you add the big string with a lot of options into the selector.
$mySelect.multiSelect('refresh');
var str = "";
for(var i; i = 0; i < arr.length; i++){
str += "<option value='" + item[i].value + "'> " + item[i].text + "</option>";
}
$mySelect.html(str);
$mySelect.multiSelect('refresh');
$(function () {
var option = $("<option></option>");
option.text("Display text");
option.val("1");
$("#Select1").append(option);
});
일부 객체에서 데이터를 얻는 경우 해당 객체를 기능으로 전달하십시오.
$(function (product) {
var option = $("<option></option>");
option.text(product.Name);
option.val(product.Id);
$("#Select1").append(option);
});
이름과 ID는 객체 속성의 이름입니다. 따라서 원하는대로 호출 할 수 있습니다 ... 물론 배열이있는 경우 ... for 루프를 사용하여 사용자 정의 함수를 만들고 싶을 때 ... 문서 준비 ... 건배
아이템 컬렉션을 추가 한 dule의 답변 을 바탕으로 원 라이너for...in
는 놀라운 일을합니다.
let cities = {'ny':'New York','ld':'London','db':'Dubai','pk':'Beijing','tk':'Tokyo','nd':'New Delhi'};
for(let c in cities){$('#selectCity').append($('<option>',{value: c,text: cities[c]}))}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<select id="selectCity"></select>
개체 값과 인덱스가 모두 옵션에 할당됩니다. 이 솔루션은 이전 jQuery (v1.4) 에서도 작동합니다 !
이것이 내가 선택한 방식이며 각 선택 태그를 추가하는 버튼이 있습니다.
$(document).on("click","#button",function() {
$('#id_table_AddTransactions').append('<option></option>')
}
$(document).ready(function(){ $("#button").click(function() { $('#id_table_AddTransactions').append('<option></option>'); }); });
$("#mySelect").html(....)
현재 옵션을 새 옵션으로 바꾸는 데 사용 하십시오.