我有10个下拉菜单,每个菜单有30个左右的选项。我试图通过使用JQuery将每个选择值与其兄弟姐妹进行比较来阻止在任何菜单中选择相同的值。这是我的代码,但它不起作用:
$('#select1').change(function() {
if ($(this).val() == $(this).siblings().val()) {
alert("OK");
}
});
正如您所看到的,我正在尝试使用#select1
将$(this).siblings().val()
的值与其所有兄弟姐妹的值进行比较。无法弄清楚为什么这不起作用。
答案 0 :(得分:3)
$('#select1').change(function() {
var self = this,
t = $(this).siblings().filter(function() {
return this.value == self.value;
});
if (t.length) {
alert("OK");
}
});
答案 1 :(得分:2)
我认为兄弟姐妹会返回一个元素列表而不是单个项目,所以你需要运行一个循环
$('#select1').change(function() {
var $select = $(this);
$(this).siblings().each(function(index){
if ($(this).val() == $select.val()) {
alert('ok');
}
}
});
答案 2 :(得分:1)
尝试使用inArray
$('#select1').change(function() {
var arr=[];
$.each($(this).siblings(),function(i,j){
arr.push($(j).val());
});
if ($.inArray($(this).val(),arr)) {
alert("OK");
}
});