我正在使用捕獲所有的方法對我的窗體上的所有輸入時,它正在由jQuery處理。使用jQuery處理複選框
$.each($(':input'),function()
{
//stuff
});
我需要能夠做的就是看看是否有這些投入是一個複選框,此刻我能找到的唯一的事情是,如果現場檢查或者不說。
任何幫助將不勝感激。
我正在使用捕獲所有的方法對我的窗體上的所有輸入時,它正在由jQuery處理。使用jQuery處理複選框
$.each($(':input'),function()
{
//stuff
});
我需要能夠做的就是看看是否有這些投入是一個複選框,此刻我能找到的唯一的事情是,如果現場檢查或者不說。
任何幫助將不勝感激。
如果你想知道它是否是該函數內部複選框:
$(':input').each(function() {
if (this.type==='checkbox')
....
});
(是的,你也可以說$(this).attr('type')==='checkbox'
,如果你是那些對所有事情都使用jQuery語法的人的話。但是,真的,有什麼意義?它一定要慢一些,少可讀性)
如果你想找到只複選框,還有針對特殊的過濾器:或者
$(':checkbox').each(function() {
...
});
嘗試這種在.each
功能
if($('#myId').attr('type') == 'checkbox')
alert ('checkbox');
UPDATE
$.fn.tagName = function() {
return this.attr("type");
}
$(document).ready(function() {
alert($('#testElement').tagName());
});
複選框不是一個tagName,它是一個類型。 – bobince 2009-10-28 11:53:12
你可以這樣做:
$.each($(":input[type=checkbox]"), function() {
// stuff
}
這裏做':input'而不是'input'是什麼意思? – 2009-10-28 14:32:07
:輸入錯誤。因爲它匹配所有'input','textarea','select'和'button'元素。在這種情況下根本不需要'select' – 2009-10-29 06:13:21
$('input[type=checkbox]').each(function(){
// stuff
});
更好
$('input:checkbox').each(function(){
// stuff
})
僅供參考:由於兩個原因,您選擇了錯誤的答案 原因a:':input'匹配所有輸入,textarea,選擇和按鈕元素。顯然,選擇在這裏是不需要的。在這種情況下,「輸入」會更加正確。 原因b:選擇全部然後過濾方法(輸入 - >每個 - >如果類型==複選框)將導致不必要的迭代,而'input [type = checkbox]'會在'.each'迭代進入之前對它們進行過濾圖片。 – 2009-10-29 06:10:14
感謝您的關注,但是需要選擇,我感覺:輸入是整個方法的最佳方式。 複選框需要與其他所有內容混合在一起,但我需要額外的事情來處理它們。迭代將保持不變。 – Toby 2009-10-29 14:40:03