2009-09-28 53 views

回答

276

您可以通过调用jQuery的is功能使用伪选择:checkbox此功能:

function is_checkbox(selector) { 
    var $result = $(selector); 
    return $result[0] && $result[0].type === 'checkbox'; 
}; 

或者这个jQuery插件:

$.fn.is_checkbox = function() { return this.is(':checkbox'); }; 
+1

这是我一直使用的方法。 – 2009-09-28 18:52:23

+0

你真的不能得到比这更简单的东西。 – KyleFarris 2009-09-28 20:48:10

+8

为什么使用选择器引擎?这完全没有必要。 – 2009-09-29 12:14:26

8
$("#myinput").attr('type') == 'checkbox' 
22
>>> a=$("#communitymode")[0] 
<input id="communitymode" type="checkbox" name="communitymode"> 
>>> a.type 
"checkbox" 

或者更多的jQuery的风格:

$('#myinput').is(':checkbox') 
+0

完全有效的。不是最简单的。 – KyleFarris 2009-09-28 20:48:51

+6

它使用jQuery的选择器引擎进行保存,在这里使用它是完全不合适的。第一个变体要好得多,因为避免了jQuery混淆的'attr()'函数搞乱任何东西的可能性。 – 2009-09-29 09:39:36

+3

@Tim Down是正确的 - 你应该把'attr()'改成'prop()',afaik。 'attr()'并不总是从浏览器中获得“真实”属性值(即是否检查)。老实说,不知道为什么会出现这种情况,但我后来知道了这一点。 – thekingoftruth 2012-12-10 20:10:49

2

用途:

$("#myinput").attr('type') == 'checkbox' 
6

非jQuery的解决方案是很象一个jQuery的解决方案:

document.querySelector('#myinput').getAttribute('type') === 'checkbox'