ile seçim listesinde olup olmadığını kontrol edin JQuery kullanarak nasıl bir değerin açılır listeye ait olup olmadığını kontrol edebilir miyim?Değer JQuery
cevap
Kullanım opsiyonun değeri Javascript üzerinden ayarlanmışsa Attribute Equals Selector
var thevalue = 'foo';
var exists = 0 != $('#select-box option[value='+thevalue+']').length;
, bu işe yaramaz. Bu durumda biz aşağıdakileri yapabilirsiniz:
var exists = false;
$('#select-box option').each(function(){
if (this.value == 'bar') {
exists = true;
return false;
}
});
Just in case (veya bir başkası) jQuery olmadan yapmak isteyen olabilir: Burada
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;
}
başka benzer bir seçenektir. Benim durumumda, bir seçim listesi oluştururken başka bir kutudaki değerleri kontrol ediyorum. Ben karşılaştırmak istiyorsunuz tanımsız değerlere çalışan tuttu, bu yüzden benim onay bu şekilde ayarlayın:
if ($("#select-box option[value='" + thevalue + "']").val() === undefined) { //do stuff }
bu yaklaşım daha pahalı olup olmadığını bilmiyorum.
Neden bir filtre kullanmıyorsunuz? > 0 doğrudur var == 0 yanlıştır bulunduğundan
var thevalue = 'foo';
var exists = $('#select-box option').filter(function(){ return $(this).val() == thevalue; }).length;
Gevşek karşılaştırmalar çalışıyorum, bu yüzden sadece
if(exists){
// it is in the dropdown
}
kullanmak Ya birleştirebilirsiniz:
if($('#select-box option').filter(function(){ return $(this).val() == thevalue; }).length){
// found
}
Veya nerede her açılan kutucukların select-boxes sınıfına sahip olmasının size bu değeri içeren select (ler) inin jquery nesnesini verecektir:
Bu '] ve `\\' de dahil olmak üzere herhangi bir karakter içeren seçenek değerleri sağlar olarakBu, en sezgisel yoldur. – Simon
if(!$('#select-box').find("option:contains('" + thevalue + "')").length){
//do stuff
}
açık ikinci bir yaklaşım,da güvenlidir. Doğru CSS kaçınılamadan ham diziden seçici dizeler oluşturmayın. – bobince
Neden "dönüş yanlış"? –
İade false, .each döngüsünü kesmek/sonlandırmak için kullanılır. – Angel