2009-10-28 86 views
0

我正在使用捕獲所有的方法對我的窗體上的所有輸入時,它正在由jQuery處理。使用jQuery處理複選框

$.each($(':input'),function() 
{ 
    //stuff     
}); 

我需要能夠做的就是看看是否有這些投入是一個複選框,此刻我能找到的唯一的事情是,如果現場檢查或者不說。

任何幫助將不勝感激。

+0

僅供參考:由於兩個原因,您選擇了錯誤的答案 原因a:':input'匹配所有輸入,textarea,選擇和按鈕元素。顯然,選擇在這裏是不需要的。在這種情況下,「輸入」會更加正確。 原因b:選擇全部然後過濾方法(輸入 - >每個 - >如果類型==複選框)將導致不必要的迭代,而'input [type = checkbox]'會在'.each'迭代進入之前對它們進行過濾圖片。 – 2009-10-29 06:10:14

+0

感謝您的關注,但是需要選擇,我感覺:輸入是整個方法的最佳方式。 複選框需要與其他所有內容混合在一起,但我需要額外的事情來處理它們。迭代將保持不變。 – Toby 2009-10-29 14:40:03

回答

4

如果你想知道它是否是該函數內部複選框:

$(':input').each(function() { 
    if (this.type==='checkbox') 
     .... 
}); 

(是的,你也可以說$(this).attr('type')==='checkbox',如果你是那些對所有事情都使用jQuery語法的人的話。但是,真的,有什麼意義?它一定要慢一些,少可讀性)

如果你想找到只複選框,還有針對特殊的過濾器:或者

$(':checkbox').each(function() { 
    ... 
}); 
-1

嘗試這種在.each功能

if($('#myId').attr('type') == 'checkbox') 
alert ('checkbox'); 

UPDATE

$.fn.tagName = function() {    
    return this.attr("type");   
}          
    $(document).ready(function() {  
    alert($('#testElement').tagName()); 
    });       
+0

複選框不是一個tagName,它是一個類型。 – bobince 2009-10-28 11:53:12

3

你可以這樣做:

$.each($(":input[type=checkbox]"), function() { 
    // stuff 
} 
+0

這裏做':input'而不是'input'是什麼意思? – 2009-10-28 14:32:07

+0

:輸入錯誤。因爲它匹配所有'input','textarea','select'和'button'元素。在這種情況下根本不需要'select' – 2009-10-29 06:13:21