29

如何检查给定的 DOM 元素是否为复选框。

设想:

我有一组文本框和复选框,其中的值是动态分配的。我无法确定 DOM 元素是复选框还是文本框。

4

10 回答 10

75

只使用 vanilla javascript 你可以做

if (el.type && el.type === 'checkbox') {
   ...
}

甚至更短

if ((el || {}).type === 'checkbox') {
   ...
}

或者在现代浏览器中你可以使用matches()

if (el.matches('[type="checkbox"]') {
    ...
}
于 2012-06-20T08:15:24.423 回答
18

如果你使用 jQuery,你可以使用:checkbox伪类选择器和is方法:

if($("#that-particular-input").is(":checkbox")) {
}
于 2012-06-20T08:15:42.020 回答
13

检查任何东西

function isCheckbox (element) {
   return element instanceof HTMLInputElement 
      && element.getAttribute('type') == 'checkbox'
}
于 2012-06-20T08:28:15.177 回答
5
if( $(element)[0].type == "checkbox" ) {

}

或者

if( $(element).is(':checkbox') ) {

}
于 2012-06-20T08:17:49.057 回答
2

看看复选框选择器

var checkboxes = $("form input:checkbox");

你可以知道输入的类型是这样的:

if ($(".your-input").is(":text"))
{
    // Textbox
}
else if ($(".your-input").is(":checkbox"))
{
    // Checkbox
}
于 2012-06-20T08:15:16.283 回答
2
if (<DOMNode>.type === "checkbox") {
    // ...
}
于 2012-06-20T08:15:56.410 回答
1

尝试这个;

  $(element).is(':checkbox');

element是您的选择器element

if(  $(element).is(':checkbox') ) {
  // do something
}
于 2012-06-20T08:15:41.090 回答
1

jQuery is():

if ($el.is(':checkbox')) { ... }
于 2012-06-20T08:16:04.210 回答
1

您可以使用伪选择器 :checkbox 调用 jQuery 的 is 函数:

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

于 2012-06-20T08:16:24.150 回答
0

您应该有一个体面的命名约定,它可以让您仅通过查看元素的 id 或名称就知道元素是否是复选框。例如“chkMyCheckbox”

于 2012-06-20T09:17:13.957 回答