2013-08-20 25 views
0

我做了元素的ID的數組,單選按鈕,像這樣:的jQuery的foreach數組對象

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

什麼我現在試圖做的是,檢查是否每一個被選中,如果是的話,加一個類的東西,否則添加一個類到別的東西。我知道如何爲每個ID單獨做到這一點:

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

我嘗試使用if($('buttons').is(':checked')) {但它不工作。

有人可以幫助我在這一個?

+0

這jquery的對象的數組,而不是元件的ID的數組。另外,'$('按鈕')'與你的按鈕數組有什麼關係?你的代碼沒有使用按鈕數組。 –

+0

'buttons.each(函數(指數值){value.is( ':檢查')});' – abc123

+0

只是出於好奇,什麼是'.cb- *'元素? –

回答

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

這應該是很多可以幫助您瞭解如何處理您的項目。

1

嘗試:

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

您應該使用

$(elem).prop("checked")

得到truefalse值,如果單選按鈕被選中或者未選中。

+0

示例這裏 - > [link](http://jsfiddle.net/puvCe/14/) – tormex

1

也許你可以嘗試這樣的事:

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

你可能不需要索引,但它會以增量是在DOM中找到像你這取決於你的努力的細節嘗試什麼去做。

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

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

DEMO