option
JQuery का उपयोग करते हुए ड्रॉपडाउन में जोड़ने का सबसे आसान तरीका क्या है ?
यह काम करेगा?
$("#mySelect").append('<option value=1>My option</option>');
option
JQuery का उपयोग करते हुए ड्रॉपडाउन में जोड़ने का सबसे आसान तरीका क्या है ?
यह काम करेगा?
$("#mySelect").append('<option value=1>My option</option>');
जवाबों:
यह IE8 में काम नहीं किया (अभी तक एफएफ में किया था):
$("#selectList").append(new Option("option text", "value"));
यह काम:
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 को बदलने की कोशिश करनी चाहिए, और भी अधिक अगर आप कई विकल्प जोड़ रहे हैं।
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');
मुझे नॉन जक्वेरी अप्रोच का उपयोग करना पसंद है:
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 सत्यापन का उपयोग करते हैं तो हमें कुछ समस्या मिली। आपको चुनिंदा कई सूची में एक आइटम पर क्लिक करना होगा। आप इस कोड को संभालेंगे:
$("#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
यह सर्वश्रेष्ठ प्रदर्शन के लिए सिर्फ एक त्वरित बिंदु है
हमेशा जब आप कई विकल्पों के साथ काम कर रहे होते हैं, तो एक बड़ी स्ट्रिंग का निर्माण करें और फिर इसे सर्वश्रेष्ठ प्रदर्शन के लिए 'चयन' में जोड़ें
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);
});
नाम और आईडी ऑब्जेक्ट प्रॉपर्टीज के नाम हैं ... इसलिए आप उन्हें जो चाहें कॉल कर सकते हैं ... और अगर आपके पास ऐरे हैं ... आप लूप के लिए कस्टम फ़ंक्शन बनाना चाहते हैं ... और फिर उस फ़ंक्शन को कॉल करें दस्तावेज तैयार ... चीयर्स
वस्तुओं के संग्रह को लागू करने के लिए विधिवत जवाब के आधार पर , एक-लाइनर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) में भी काम करता है !
यू विकल्प के लिए संलग्न करने के लिए नीचे कोड की कोशिश कर सकते हैं
<select id="mySelect"></select>
<script>
$("#mySelect").append($("<option></option>").val("1").html("My enter code hereoption"));
</script>
यह वह तरीका है जो मैंने किया था, जिसमें प्रत्येक चयनित टैग जोड़ने के लिए एक बटन था।
$(document).on("click","#button",function() {
$('#id_table_AddTransactions').append('<option></option>')
}
$(document).ready(function(){ $("#button").click(function() { $('#id_table_AddTransactions').append('<option></option>'); }); });
अगर कोई यहां आता है तो डेटा प्रॉपर्टीज के साथ विकल्प जोड़ने का रास्ता खोजता है
Attr का उपयोग करना
var option = $('<option>', { value: 'the_value', text: 'some text' }).attr('family', model.family);
डेटा का उपयोग करना - संस्करण 1.2.3 जोड़ा गया
var option = $('<option>', { value: 'the_value', text: 'some text' }).data('misc', 'misc-value);
$("#mySelect").html(....)
वर्तमान विकल्पों को नए के साथ बदलने के लिए उपयोग करें।