Javascript Jquery同步多个下拉列表
我有多个下拉列表,并尝试使用jquery同步所有下拉列表中的可用选项Javascript Jquery同步多个下拉列表,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,我有多个下拉列表,并尝试使用jquery同步所有下拉列表中的可用选项 <select class="abc" id="test1"> <option value="" selected></option> <option value="1">RTY</option> <option value="2">QWE</option> <option value="3">ASD
<select class="abc" id="test1">
<option value="" selected></option>
<option value="1">RTY</option>
<option value="2">QWE</option>
<option value="3">ASD</option>
<option value="4">ZXC</option>
<option value="5">BNM</option>
</select>
<select class="abc" id="test2">
<option value="" selected></option>
<option value="1">RTY</option>
<option value="2">QWE</option>
<option value="3">ASD</option>
<option value="4">ZXC</option>
<option value="5">BNM</option>
</select>
<select class="abc" id="test3">
<option value="" selected></option>
<option value="1">RTY</option>
<option value="2">QWE</option>
<option value="3">ASD</option>
<option value="4">ZXC</option>
<option value="5">BNM</option>
</select>
我的代码有什么问题吗?类似这样的东西怎么样:
var $abs = $('.abc').change(function() {
$abs.children().show()
.end().not(this)
.find('[value="' + $(this).val() + '"]').hide();
});
演示:您可以将当前选定的值存储在数组中,然后只需隐藏其中的每一个值,如:
var vals = new Array();
$('.abc').change(function() {
vals = [];
$('.abc').each(function(){
var val = $(this).val();
if (val != ""){
vals.push(val);
}
$('option').show();
for (var i = 0; i< vals.length; i++){
$('option[value="' + vals[i] + '"]').hide();
}
});
});
为什么这个问题与今天早些时候提出的问题惊人地相似?谢谢这正是我要找的。
var $abs = $('.abc').change(function() {
$abs.children().show()
.end().not(this)
.find('[value="' + $(this).val() + '"]').hide();
});
var vals = new Array();
$('.abc').change(function() {
vals = [];
$('.abc').each(function(){
var val = $(this).val();
if (val != ""){
vals.push(val);
}
$('option').show();
for (var i = 0; i< vals.length; i++){
$('option[value="' + vals[i] + '"]').hide();
}
});
});