option
jQueryを使用してドロップダウンにを追加する最も簡単な方法は何ですか?
これは機能しますか?
$("#mySelect").append('<option value=1>My option</option>');
option
jQueryを使用してドロップダウンにを追加する最も簡単な方法は何ですか?
これは機能しますか?
$("#mySelect").append('<option value=1>My option</option>');
回答:
これは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;
いないことを確認してください。これはjs-codeを壊します
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を1回だけ変更するようにしてください。多くのオプションを追加する場合は、さらに変更してください。
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()
文字列を連結するために使用する必要があるパフォーマンスを支援するために
$('#mySelect').empty().append('<option value=1>My option</option>').selectmenu('refresh');
selectmenu()
はjQueryコアの一部ではなく、jQueryUI ウィジェットです。それはそれをかなり強引な解決策にしますよね?
非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);
オプションを追加してjquery検証を使用するときに問題が見つかりました。複数選択リストで1つの項目をクリックする必要があります。このコードを追加して処理します。
$("#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(....)
、現在のオプションを新しいオプションで置き換えるために使用します。