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 に答える