1

我有 10 个下拉菜单,每个都有 30 个左右的选项。我试图通过使用 JQuery 将每个选择值与其同级进行比较来防止在任何菜单中选择相同的值。这是我的代码,但它不起作用:

$('#select1').change(function() {
    if ($(this).val() == $(this).siblings().val()) {
        alert("OK");
    }
});

如您所见,我正在尝试#select1使用$(this).siblings().val(). 无法弄清楚为什么这不起作用。

4

3 回答 3

3
$('#select1').change(function() {
    var self = this, 
        t = $(this).siblings().filter(function() {
            return this.value == self.value;
        });
    if (t.length) {
        alert("OK");
    }
});​

小提琴

于 2012-05-02T04:42:04.713 回答
2

我认为兄弟姐妹返回一个元素列表而不是单个项目,所以你需要运行一个循环

$('#select1').change(function() {

    var $select = $(this);

    $(this).siblings().each(function(index){

        if ($(this).val() == $select.val()) {
            alert('ok');
        }
    }
});
于 2012-05-02T04:37:18.943 回答
1

尝试使用inArray

$('#select1').change(function() {

    var arr=[];
    $.each($(this).siblings(),function(i,j){
     arr.push($(j).val());
    });
    if ($.inArray($(this).val(),arr)) {
        alert("OK");
    }
});
于 2012-05-02T04:39:13.003 回答