JQuery를 사용하여 값이 드롭 다운 목록에 속하는지 여부를 어떻게 확인할 수 있습니까?
JQuery를 사용하여 값이 드롭 다운 목록에 속하는지 여부를 어떻게 확인할 수 있습니까?
답변:
사용 특성이 선택기 같음
var thevalue = 'foo';
var exists = 0 != $('#select-box option[value='+thevalue+']').length;
옵션의 값이 Javascript를 통해 설정된 경우 작동하지 않습니다. 이 경우 다음을 수행 할 수 있습니다.
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;
}
필터를 사용하지 않는 이유는 무엇입니까?
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
}
또는 각 선택 드롭 다운에 select-boxes 클래스가있는 경우 값을 포함하는 선택의 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);
}
이 예에서 볼 수 있듯이 고유 태그 데이터 드롭 다운 이름과 선택한 옵션의 값으로 검색하고 있습니다. 물론 이것들이 작동하는 데 필요하지는 않지만 다른 사람들이 다중 값 등을 검색 할 수 있도록 다른 사람들이 볼 수 있도록 포함했습니다.
]
및`\`를 포함한 모든 문자를 포함하는 옵션 값을 허용하므로 더 안전합니다 . 적절한 CSS 이스케이프를 수행하지 않고 원시 텍스트에서 선택기 문자열을 빌드하지 마십시오.