首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery比较选择的同级值

问JQuery比较选择的同级值
EN

Stack Overflow用户
提问于 2012-05-02 12:29:04
回答 3查看 1.5K关注 0票数 1

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

代码语言:javascript
复制
$('#select1').change(function() {
    if ($(this).val() == $(this).siblings().val()) {
        alert("OK");
    }
});

正如您所看到的,我正在尝试使用$(this).siblings().val()将#select1的值与其所有兄弟的值进行比较。我搞不懂为什么这不管用。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-05-02 12:37:19

我认为同级返回一个元素列表,而不是一个单独的项,所以您需要运行一个循环

代码语言:javascript
复制
$('#select1').change(function() {

    var $select = $(this);

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

        if ($(this).val() == $select.val()) {
            alert('ok');
        }
    }
});
票数 2
EN

Stack Overflow用户

发布于 2012-05-02 12:42:05

代码语言:javascript
复制
$('#select1').change(function() {
    var self = this, 
        t = $(this).siblings().filter(function() {
            return this.value == self.value;
        });
    if (t.length) {
        alert("OK");
    }
});​

FIDDLE

票数 3
EN

Stack Overflow用户

发布于 2012-05-02 12:39:13

尝试使用inArray

代码语言:javascript
复制
$('#select1').change(function() {

    var arr=[];
    $.each($(this).siblings(),function(i,j){
     arr.push($(j).val());
    });
    if ($.inArray($(this).val(),arr)) {
        alert("OK");
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10407736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档