2012-06-20 70 views
10

如何檢查給定的DOM元素是否爲複選框。檢查DOM元素是否爲複選框

場景:

我有一組在其值被動態地分配文本框和複選框。我沒有辦法確定DOM元素是複選框還是文本框。

回答

15

如果你使用jQuery,您可以用is方法一起使用:checkbox選擇:

if($("#that-particular-input").is(":checkbox")) { 
} 
1

看看checkbox selector

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

你可以告訴輸入是什麼類型這樣的:

if ($(".your-input").is(":text")) 
{ 
    // Textbox 
} 
else if ($(".your-input").is(":checkbox")) 
{ 
    // Checkbox 
} 
37

只使用的JavaScript,你可以做

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

,甚至更短的

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

很多年以後......你可能想'toLowerCase'那種類型的值,不是嗎? – Nathan

+0

不,請轉換爲'lowerCase'並比較。 –

+0

@AndreasKöberle它應該取決於你如何在標記中寫入屬性,對吧? – fcalderan

0

嘗試香草這個;

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

這裏element是選擇你element

if( $(element).is(':checkbox')) { 
    // do something 
} 
1
if (<DOMNode>.type === "checkbox") { 
    // ... 
} 
0

的jQuery is()

if ($el.is(':checkbox')) { ... } 
0

可以使用僞選擇:與到jQuery的通話複選框功能:

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

3
if($(element)[0].type == "checkbox") { 

} 

OR

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

} 
8

檢查什麼

function isCheckbox (element) { 
    return element instanceof HTMLInputElement 
     && element.getAttribute('type') == 'checkbox' 
} 
0

你應該有一個體面的命名約定,它可以讓你知道如果一個元素是一個複選框,只是看到它的ID或名稱。 例如「chkMyCheckbox」