Jquery 隐藏和显示多个选择

Jquery 隐藏和显示多个选择,jquery,Jquery,我有两个选择,我想根据第二个选择的值删除第一个选择的值。例如:如果我从第二个选择中选择值1和2,我希望值2,3,4,5隐藏,如果在第二个选择中选择值3,我希望值1,2,3隐藏: 选择1: <select name="select1"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <

我有两个选择,我想根据第二个选择的值删除第一个选择的值。例如:如果我从第二个选择中选择值1和2,我希望值2,3,4,5隐藏,如果在第二个选择中选择值3,我希望值1,2,3隐藏:

选择1:

<select name="select1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>
这段代码用于隐藏,但我有一个问题。当代码在值1和2上隐藏2,3,4,5时,在“第二次选择”中选择值3只显示值1,因为其他值是隐藏的。我用show解决了这个问题。然后显示2,3,4,5,但我无法隐藏值1,因为返回://我尝试了这个,它不起作用:

var ary=[4,5];
var ary2=[1];
$('[name=select1] option').filter(function(){
return ($.inArray(parseInt(this.value),ary) >-1);}).hide()&&($.inArray(parseInt(this.value),arry2) >-1);}).show();
我还尝试调用另一个函数,它总是刷新select1,显示所有的值,在这个函数中只使用隐藏,我认为这是正确的方法,但我不知道如何解决它?

这里有一些问题:

注意,我想在这里添加列表项可能会更有效一些,但您会想到:

var $resetValues = $('#select1').find("option");

$('#select2').on('change', function() {
    var selected = $("option:selected", this).val();
    // Reset select1
    $('#select1').empty();
    $resetValues.each(function() {
         $('#select1').append($(this));
    });

    var array; // Hidden values
    if(selected > 0 && selected < 3) {
        array = [2,3,4,5];
    } else {
        array = [1,2,3];
    }

    $('#select1 option').filter(function() {
        return ($.inArray(parseInt($(this).val()), array) != -1);
    }).remove();
});

我不太明白这个问题。您只想在select1中显示select2中选定的元素吗?您能再解释一下吗?我想您可以使用并切换每个下拉列表的可用选项集。@RocketHazmat我只想删除select1上的值。如果select2上的选定值为1或2,我想从select1中隐藏值2、3、4、5。如果select2上的selected value为3,我想删除值1,2,3。我的代码可以很好地隐藏,问题是如何在选择值3时显示值4,5并删除值1,2,3。我认为最好总是使用隐藏在我的函数中,并使用一些函数来刷新这个select1,并将他的所有值设置为显示,然后运行我的函数,然后为select2=1或2隐藏值2,3,4,5,为select2=3隐藏值1,2,3再清楚些???tnx很多人,你帮了我很多忙,我的头开始发白:我对你的代码做了一点修改,看看:
var ary=[4,5];
var ary2=[1];
$('[name=select1] option').filter(function(){
return ($.inArray(parseInt(this.value),ary) >-1);}).hide()&&($.inArray(parseInt(this.value),arry2) >-1);}).show();
var $resetValues = $('#select1').find("option");

$('#select2').on('change', function() {
    var selected = $("option:selected", this).val();
    // Reset select1
    $('#select1').empty();
    $resetValues.each(function() {
         $('#select1').append($(this));
    });

    var array; // Hidden values
    if(selected > 0 && selected < 3) {
        array = [2,3,4,5];
    } else {
        array = [1,2,3];
    }

    $('#select1 option').filter(function() {
        return ($.inArray(parseInt($(this).val()), array) != -1);
    }).remove();
});