मैं, JQuery का उपयोग कैसे कर सकता हूं, जांचें कि क्या मान ड्रॉपडाउन सूची से संबंधित है या नहीं?
मैं, JQuery का उपयोग कैसे कर सकता हूं, जांचें कि क्या मान ड्रॉपडाउन सूची से संबंधित है या नहीं?
जवाबों:
एट्रिब्यूट इक्वल सिलेक्टर का उपयोग करें
var thevalue = 'foo';
var exists = 0 != $('#select-box option[value='+thevalue+']').length;
यदि विकल्प का मान जावास्क्रिप्ट के माध्यम से सेट किया गया था, तो वह काम नहीं करेगा। इस मामले में हम निम्नलिखित कर सकते हैं:
var exists = false;
$('#select-box option').each(function(){
if (this.value == 'bar') {
exists = true;
return false;
}
});
return false
?
बस अगर आपको (या किसी और को) jQuery के बिना इसे करने में दिलचस्पी हो सकती है:
var exists = false;
for(var i = 0, opts = document.getElementById('select-box').options; i < opts.length; ++i)
if( opts[i].value === 'bar' )
{
exists = true;
break;
}
यहाँ एक और समान विकल्प है। मेरे मामले में, मैं एक अन्य सूची में मूल्यों की जाँच कर रहा हूँ क्योंकि मैं एक चयन सूची बनाता हूँ। मैं अपरिभाषित मूल्यों में भागता रहा जब मैं तुलना करूंगा, इसलिए मैंने अपना चेक इस तरह से सेट किया:
if ( $("#select-box option[value='" + thevalue + "']").val() === undefined) { //do stuff }
मुझे नहीं पता कि यह दृष्टिकोण अधिक महंगा है।
क्यों नहीं एक फिल्टर का उपयोग करें?
var thevalue = 'foo';
var exists = $('#select-box option').filter(function(){ return $(this).val() == thevalue; }).length;
ढीली तुलना काम करती है क्योंकि मौजूद है> 0 सच है, मौजूद है == 0 गलत है, इसलिए आप बस उपयोग कर सकते हैं
if(exists){
// it is in the dropdown
}
या इसे संयोजित करें:
if($('#select-box option').filter(function(){ return $(this).val() == thevalue; }).length){
// found
}
या जहां प्रत्येक चुनिंदा ड्रॉपडाउन में चयन-बक्से की कक्षा होती है, इससे आपको चयन (ओं) का एक jquery ऑब्जेक्ट मिलेगा जिसमें मूल्य शामिल हैं:
var matched = $('.select-boxes option').filter(function(){ return $(this).val() == thevalue; }).parent();
if(!$('#select-box').find("option:contains('" + thevalue + "')").length){
//do stuff
}
theValue
लेकिन option_number
ड्रॉपडाउन में। आप समाधान गलत है।
मुझे पता है कि यह इस तरह का एक पुराना सवाल है जो बेहतर काम करता है।
if(!$('.dropdownName[data-dropdown="' + data["item"][i]["name"] + '"] option[value="'+data['item'][i]['id']+'"]')[0]){
//Doesn't exist, so it isn't a repeat value being added. Go ahead and append.
$('.dropdownName[data-dropdown="' + data["item"][i]["name"] + '"]').append(option);
}
जैसा कि आप इस उदाहरण में देख सकते हैं, मैं अद्वितीय टैग डेटा-ड्रॉपडाउन नाम और चयनित विकल्प का मूल्य खोज रहा हूं। बेशक आपको काम करने के लिए इनकी आवश्यकता नहीं है, लेकिन मैंने उन्हें शामिल किया ताकि अन्य लोग देख सकें कि आप बहु मूल्यों की खोज कर सकते हैं, आदि।
]
और ``। सीएसएस से बचने के बिना कच्चे पाठ से चयनकर्ता तार के निर्माण से बचें।