2011-09-05 71 views
1

如何確定一個複選框的狀態用下面的代碼(即選中或取消選中):如何從JQuery返回的數組中確定複選框的選中狀態?

function deleteItems() { 
    var items = $('.td_checkbox'); 
    for (var item in items) { 

     // this doesn't work 
     if ($(item).is(:checked) == true) 
      alert('delete my div if checked!');    
    } 
} 
+0

什麼是與此相關的HTML?你的CSS類似乎告訴我,你正在得到一個td元素的集合... – gislikonrad

+0

複選框在一個表中。複選框class =「td_checkbox」。 – Ronald

回答

3

你需要引號:檢查,但我也不認爲你的循環正常工作。

這將做你想做的(使用每個(),而不是在項目項)

function deleteItems() { 
    $('.td_checkbox').each(function(){ 
     if ($(this).is(":checked")) 
      alert('delete my div if checked!');    
    }); 
} 
+0

這是完美的!謝謝! – Ronald

+1

@Roland:通常你會想使用'this.checked'而不是'$(this).is(「:checked」)',它不必要地調用昂貴的選擇器引擎來做一些容易獲得的東西,屬性在'this'對象上。 –

+1

@安迪說實話。 –

4

你缺少周圍:checked引號".is(":checked")

但這樣做的jQuery的方式:

function deleteItems() { 
    $('.td_checkbox:checked').remove(); // or .parent().remove(); 
} 
+0

這也會有用!謝謝。 – Ronald

0

可以使用attr屬性來檢查和/或設置屬性

function deleteItems() { 
    var items = $('.td_checkbox'); 
    for (var item in items) { 

     // this doesn't work 
     if ($(item).attr('checked') == true) 
      $(item).remove();    
    } 
} 

或者您也可以在手前過濾選中的圖片

function deleteItems() { 
    var items = $('.td_checkbox:checked'); 
    for (var item in items) { 
     $(item).remove(); 
} 
0

跳過jQuery for t他checkedness檢查,只是使用複選框元素的couldn't待簡單 - 作品 - 中 - 每一個瀏覽器的發佈,自1995年checked屬性:

function deleteItems() { 
    $('.td_checkbox').each(function() { 
     if (this.checked) { 
      alert('delete my div if checked!');    
     } 
    }); 
} 
相關問題