質問にあるように、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 がサポートしていないため、これを使用してオプション要素を作成することはできません。
できることは、新しい選択要素を作成してから、すべてのオプションを追加することです。ループが終了したら、実際の 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 を 1 回だけ変更します。
プラグインを使用しない場合は、jQuery をあまり使用しなくても簡単に行うことができます。
var myOptions = {
val1 : 'text1',
val2 : 'text2'
};
$.each(myOptions, function(val, text) {
$('#mySelect').append( new Option(text,val) );
});
オプション a) がデフォルトで選択されている値であり、b) を選択する必要があるかどうかを指定する場合は、さらに 2 つのパラメーターを渡すことができます。
var defaultSelected = false;
var nowSelected = true;
$('#mySelect').append( new Option(text,val,defaultSelected,nowSelected) );
プラグインを使用: jQuery Selection Box。あなたはこれを行うことができます:
var myOptions = {
"Value 1" : "Text 1",
"Value 2" : "Text 2",
"Value 3" : "Text 3"
}
$("#myselect2").addOption(myOptions, false);
最初にドロップダウンをクリアすることをお勧めします $('#DropDownQuality').empty();
MVC のコントローラーに、項目が 1 つだけの選択リストを返すようにしました。
$('#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");
@Phrogz のソリューションは IE 8 では機能しないことに注意してください。一方、@nickf のソリューションはすべての主要なブラウザーで機能します。別のアプローチは次のとおりです。
$.each(myOptions, function(val, text) {
$("#mySelect").append($("<option/>").attr("value", val).text(text));
});
Uは直接使用できます
$"(.ddlClassName").Html("<option selected=\"selected\" value=\"1\">1</option><option value=\"2\">2</option>")
-> ここでは、直接文字列を使用できます
また、.prepend() を使用して、オプション リストの先頭にオプションを追加します。 http://api.jquery.com/prepend/
あなたが使用できるjqueryを使用して
this.$('select#myid').append('<option>newvalue</option>');
ここで、「myid」はドロップダウン リストのIDで、 newvalueは挿入するテキストです。
ページにドロップダウンがあるのと同じ数のオプションをドロップダウンに追加する必要がありました。だから私はこのようにそれを使用しました:
function myAppender(obj, value, text){
obj.append($('<option></option>').val(value).html(text));
}
$(document).ready(function() {
var counter = 0;
var builder = 0;
// Get the number of dropdowns
$('[id*="ddlPosition_"]').each(function() {
counter++;
});
// Add the options for each dropdown
$('[id*="ddlPosition_"]').each(function() {
var myId = this.id.split('_')[1];
// Add each option in a loop for the specific dropdown we are on
for (var i=0; i<counter; i++) {
myAppender($('[id*="ddlPosition_'+myId+'"]'), i, i+1);
}
$('[id*="ddlPosition_'+myId+'"]').val(builder);
builder++;
});
});
これにより、1 から n のような値でドロップダウンが動的に設定され、ドロップダウンがあった順序の値が自動的に選択されました (つまり、2 番目のドロップダウンはボックスで「2」を取得するなど)。
2nd でthis
or this.Object
or orを使用できないのはばかげていましたが、実際にはそのオブジェクトの特定の ID を取得し、そのオブジェクト全体を取得して関数に渡してから追加する必要がありました。幸いなことに、ドロップダウンの ID は「_」で区切られていたので、取得できました。そうしなければならなかったとは思いませんが、それ以外の場合はjQueryの例外が発生し続けました。私が知っていることを楽しむかもしれないことに苦労している他の何か。$.obj
.each()
あなたの応答が「successData」だとしましょう。これには、ドロップダウン メニューのオプションとして追加する必要があるリストが含まれています。
success: function (successData) {
var sizeOfData = successData.length;
if (sizeOfData == 0) {
// NO DATA, throw an alert ...
alert ("No Data Found");
} else {
$.each(successData, function(val, text) {
mySelect.append(
$('<option></option>').val(val).html(text)
);
});
} }
これはあなたのために働くでしょう....
この関数を試してください:
function addtoselect(param,value){
$('#mySelectBox').append('<option value='+value+'>'+param+'</option>');
}