У меня есть 2 поля выбора, оба из них имеют параметры, которые заполняются автоматически через поиск из базы данных. Я пытаюсь проверить, есть ли какой-либо из вариантов в поле выбора нет. 2 соответствует любым параметрам в поле выбора № 1. если true, удалите эту опцию из поля выбора № 1, если false, сохраните ее в обоих.

Я нахожу следующий код во время поиска, но он не работает со мной:

var exists = false;
  $('#select-box2 option').each(function(){
   if (this.value == $('#select-box1 option').val()) {
    exists = true;
    return false;
   }
});
1
M.Gooda 13 Май 2018 в 23:17

1 ответ

Лучший ответ

Может быть так:

  $('#select-box2 option').each(function(){  //loop option #select-box2
      var sb2_option=$(this);
       $('#select-box1 option').each(function(){  //loop option #select-box1
       	   var sb1_option=$(this);
       	   if(sb2_option.val()==sb1_option.val()){
       	   	   console.log('exist!!! #select-box1=>'+sb1_option.val()+' #select-box2=>'+sb2_option.val());
       	   	   sb2_option.remove();  //or  sb1_option.remove();  - for delete option
       	   }
       });
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>


<select id="select-box1">
  <option value="1">test 1</option>
  <option value="2">test 2</option>
  <option value="3">test 2</option>
  <option value="4">test 4</option>
  <option value="5">test 5</option>
</select>


<select id="select-box2">
  <option value="5">test 5</option>
  <option value="6">test 6</option>
  <option value="7">test 7</option>
  <option value="7">test 8</option>
  <option value="9">test 9</option>
</select>
1
mscdeveloper 13 Май 2018 в 20:37