Это то, что вы имеете в виду?
Это удалит все из #select2
, что было в #select1
:
$("#select2 option").each(function() {
if($("#select1 option[value=" + this.value + "]").length)
$(this).remove();
});
Вот еще одна альтернатива, которая удаляет все дубликаты:
$("select").each(function() {
var select = $(this);
select.children("option").each(function() {
$('select').not(select).children("option[value=" + this.value + "]").remove();
});
});
При этом удаляется каждый дубликат, оставляя параметр только в первом <select>
, в котором он был найден.
Обновление для вашего комментария:
$("#select1").change(function() {
$("#select2 option[value=" + $(this).val()+ "]").remove();
});