JQuery에서 select에 옵션이 이미 존재하는지 어떻게 확인할 수 있습니까?
동적으로 옵션을 선택에 추가하고 싶으므로 복제를 방지하기 위해 옵션이 이미 존재하는지 확인해야합니다.
답변
이미 존재하는 경우 true로 평가됩니다.
$("#yourSelect option[value='yourValue']").length > 0;
답변
jQuery를 사용하는 다른 방법 :
var exists = false;
$('#yourSelect option').each(function(){
if (this.value == yourValue) {
exists = true;
}
});
답변
if ( $("#your_select_id option[value=<enter_value_here>]").length == 0 ){
alert("option doesn't exist!");
}
답변
var exists = $("#yourSelect option")
.filter(function (i, o) { return o.value === yourValue; })
.length > 0;
이는 자동으로 값을 이스케이프 처리하여 텍스트에서 임의의 따옴표를 다루기가 훨씬 쉽습니다.
답변
작동하지 않으면 다음을 수행해야합니다.
if ( $("#your_select_id option[value='enter_value_here']").length == 0 ){
alert("option doesn't exist!");
}
답변
그것은 나를 도와줍니다 :
var key = 'Hallo';
if ( $("#chosen_b option[value='"+key+"']").length == 0 ){
alert("option not exist!");
$('#chosen_b').append("<option value='"+key+"'>"+key+"</option>");
$('#chosen_b').val(key);
$('#chosen_b').trigger("chosen:updated");
}
});
답변
나는 비슷한 문제가 있었다. select 컨트롤에 대한 루프가 jquery select 요소를 변수에 저장하고 매번 dom을 통해 검색을 실행하는 대신 다음을 수행했습니다.
function isValueInSelect($select, data_value){
return $($select).children('option').map(function(index, opt){
return opt.value;
}).get().includes(data_value);
}