我正在使用捕获所有的方法对我的窗体上的所有输入时,它正在由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