从类似的下拉列表中删除选项,但在jQuery中保留自己的选项

时间:2012-03-08 23:28:34

标签: jquery

我需要一些jQuery的帮助。我有一个从函数中检索的droplist。该清单包含10个项目。我的布局中有10个下拉列表。每次从10个下拉列表中选择一个选项时,我都希望从所有其他下拉列表中删除该选项。以下代码是我到目前为止所提出的,但它从首先选择一个选项的下拉列表中删除了所选选项。

$("select").change(function () {
    $removePlayerID = $(this).attr('value');
    $("#Teamone option[value=" + $removePlayerID + "]").remove();
});

jsFiddle:http://jsfiddle.net/pfX7n/

因此,当选择一个选项时,其他下拉列表将不再具有该选项。

提前谢谢。

4 个答案:

答案 0 :(得分:0)

$(function(){
    $('select').change(function(){
        $removePlayerID = $(this).attr('value');
        $('select').not( $(this) ).find('option[value=' + $removePlayerID + ']').remove();
    });
});​

同样在http://jsfiddle.net/justiceerolin/pkgEA/

但更大的问题:您需要确保存在唯一的ID。 TeamTwo和TeamOne是每个select元素的重复ID。 ID应该是唯一的。

答案 1 :(得分:0)

试试这个

 var $allSelects = $('select');

 $allSelects.change(function(){
    $allSelects.not(this).find('option[value='+ $(this).val()+']').remove();    
});

还要记住,一旦选项中的选项消失,它们就会消失(除非你做其他一些我的意思)。因此,如果再次更改相同的选择,则其他选择中先前删除的选项将不会再次出现。

答案 2 :(得分:0)

这是一个更新的解决方案:

http://jsfiddle.net/sidou/qpWuc/

答案 3 :(得分:0)

这似乎有效:

$('select').change(function() {
    var clone = $('option:selected',this);
    $('option[value=' + $(this).val() + ']').remove();
    $(this).append(clone);
})

<强> jsFiddle example