Jquery 各禁用

Jquery each disabled

使用此代码: http://jsfiddle.net/oreli/7wdq6ktn/

我喜欢以下行为:

但我还是全红或者全绿。

我的错误是什么?

谢谢

$(document).ready(function () {
 $( ".choice" ).each(function() {
    if($(".orderChoice").is(":disabled")) {
        $(".choice").addClass('disabled').remove('notdisabled');
    } else {
        $(".choice").addClass('notdisabled').remove('disabled');
    };
 });
});

您正在选择所有 .choice 并应用 class。使用上下文:

$(document).ready(function () {

    $( ".choice" ).each(function() {
        if($(this).find("input").is(":disabled")) {
            $(this).addClass('disabled').remove('notdisabled');
        } else {
            $(this).addClass('notdisabled').remove('disabled');
        };
    });

});

Fiddle: http://jsfiddle.net/7wdq6ktn/2/

您需要检查当前输入元素,使用 this。否则它将始终检查具有 class

的第一个元素
$(document).ready(function() {
    $(".choice").each(function() {
        if ($(this).find(".orderChoice").is(":disabled")) {
            $(this).addClass('disabled').remove('notdisabled');
        } else {
            $(this).addClass('notdisabled').remove('disabled');
        };
    });

});

尝试更改您的 each 功能。每个中的 $(selector) 不引用当前迭代元素。试试这个:

 $( ".choice" ).each(function(index, element) {
    if($(element).is(":disabled")) {
        $(element).addClass('disabled').remove('notdisabled');
    } else {
        $(element).addClass('notdisabled').remove('disabled');
    };
 });