jQuery foreach数组对象

时间:2013-08-20 19:06:38

标签: jquery arrays radio-button

我为单选按钮创建了一个元素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')) {,但它不起作用。

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

5 个答案:

答案 0 :(得分:1)

尝试:

var buttons = $('#first:checked,#second:checked,#third:checked,#fourth:checked');
if (buttons.length>0)
{
...
} else {
...
}

答案 1 :(得分:1)

你应该使用

$(elem).prop("checked")

如果选中或未选中单选按钮,则获取truefalse值。

答案 2 :(得分:1)

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

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

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

答案 3 :(得分: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

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

答案 4 :(得分:1)

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

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

DEMO