Как я могу проверить, существует ли опция выбора в JQuery? - PullRequest
152 голосов
/ 14 марта 2009

Как я могу проверить, существует ли опция выбора в JQuery?

Я хочу динамически добавлять опции в select, и поэтому мне нужно проверить, существует ли опция для предотвращения дублирования.

Ответы [ 6 ]

298 голосов
/ 14 марта 2009

Значение true, если оно уже существует:

$("#yourSelect option[value='yourValue']").length > 0;
19 голосов
/ 30 марта 2012

Другой способ использования jQuery:

var exists = false; 
$('#yourSelect  option').each(function(){
  if (this.value == yourValue) {
    exists = true;
  }
});
19 голосов
/ 14 марта 2009
if ( $("#your_select_id option[value=<enter_value_here>]").length == 0 ){
  alert("option doesn't exist!");
}
15 голосов
/ 20 мая 2016
var exists = $("#yourSelect option")
               .filter(function (i, o) { return o.value === yourValue; })
               .length > 0;

Преимуществом этого является автоматическое экранирование значения, что значительно упрощает работу со случайными кавычками в тексте.

2 голосов
/ 14 марта 2011

Не работает, вы должны сделать это:

if ( $("#your_select_id option[value='enter_value_here']").length == 0 ){
  alert("option doesn't exist!");
}
0 голосов
/ 24 сентября 2016

Это поможет мне:

  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");
                         }
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...