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

时间:2011-09-13 22:13:42

标签: javascript jquery html

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

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

我认为上述方法可行,但事实并非如此。有人可以指出我的方式错误吗?

2 个答案:

答案 0 :(得分:0)

尝试

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

编辑现在我详细查看了代码片段,我想知道为什么要使用两个嵌套的每个函数。我希望你没有几个ID为#chosenList的选择...无论如何,我会说现在应该可以了......

答案 1 :(得分:0)

我之前遇到过这种问题。将其更改为:

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

请注意$()周围的this?那是因为this是一个'纯'JavaScript对象 - 而不是jQuery对象,因此没有.val()函数。在它周围放置$()会将其转换为jQuery对象。