0

我为单选按钮制作了一组元素 ID,如下所示:

var buttons = [$('#first'), $('#second'), $('#third'), $('#fourth')];

我现在要做的是,检查是否每个都被检查,如果是,则向某事物添加一个类,否则向其他事物添加一个类。我知道如何为每个单独的id分别执行此操作:

if($('#first').is(':checked')) { 
    $('.cb-enable').addClass('selected');
}
else {
    $('.cb-disable').addClass('selected');
}

我尝试使用if($('buttons').is(':checked')) {但它不起作用。

有人可以帮我解决这个问题吗?

4

5 回答 5

1

尝试:

var buttons = $('#first:checked,#second:checked,#third:checked,#fourth:checked');
if (buttons.length>0)
{
...
} else {
...
}
于 2013-08-20T19:13:00.757 回答
1

你应该使用

$(elem).prop("checked")

如果选中或未选中单选按钮,则获取true或赋值。false

于 2013-08-20T19:13:07.187 回答
1

也许你可以尝试这样的事情:

        $('input[type=radio]').each(function (index) {
            if ($(this).is(':checked')) 
               $('.cb-disable').addClass('selected');
            else 
               $('.cb-enable').addClass('selected');
        }

您可能不需要索引,但它将是增量的,以便在 dom 中找到它,就像您尝试的那样,具体取决于您尝试执行的操作的详细信息。

于 2013-08-20T19:15:17.570 回答
1

这是一个工作演示:http: //jsbin.com/UpUk/1/edit

  <button class="check">Tell me what is checked</button>
  <input type="radio" class="checkable">
  <input type="radio" class="checkable">
  <input type="radio" class="checkable">
  <input type="radio" class="checkable">
  <input type="radio" class="checkable">

var $radios = $('.checkable');

$('.check').click(function() {
  $radios.each(function(index, item) {
    if ($(item).is(':checked')) {
      alert('item: '+index+' is checked!');
    }
  });
});

通常最好使用类,并且您不需要单独处理每个项目来完成您想要做的事情。

这是处理切换类的更好版本。它可能比您要寻找的要多,但我不太清楚您将其用于什么。

http://jsbin.com/UpUk/3/edit

这应该足以帮助您了解如何处理您的项目。

于 2013-08-20T19:15:58.537 回答
1
var buttons = [$('#first'), $('#second'), $('#third'), $('#fourth')];

$.each(buttons, function(i,el){
  alert( el[0].checked );
});

演示

于 2013-08-20T19:17:06.670 回答