两个选择-删除选项的一个基于另一个

jquery Two selects - remove options of one based on the other

本文关键字:一个 另一个 删除 两个 选择 选项      更新时间:2023-09-26

我有两个使用jstl构建的选择列表。一个包含所有可用的人员,另一个包含适用的人员。我想从所有可用人员列表中删除适用人员。

$(document).ready(function() {
  $("#chosenList").each(function() {
    $("option", this).each(function(){
      $("#chooseList option[value='"+this+"']").remove();
    });
  });
});

我以为上面的方法会起作用,但它没有。有人能指出我的错误吗?

我以前遇到过这种问题。改为:

$(document).ready(function() {
  $("#chosenList").each(function() {
    $("option", $(this)).each(function(){
      $("#chooseList option[value='"+$(this).val()+"']").remove();
    });
  });
});

注意$()this周围?这是因为this是一个"纯"JavaScript对象-不是一个jQuery对象,因此没有.val()功能。把$()放在它的周围将它转换为一个jQuery对象

Try

$(document).ready(function() {
  $("#chosenList option").each(function() {
      $("#chooseList option[value='"+$(this).val()+"']").remove();
  });
});

Edit:现在我详细查看了代码片段,我想知道为什么使用两个嵌套的each函数。我希望你没有使用ID #chosenList进行多次选择…无论如何,我想说现在应该可以工作了…