2009-09-28 11 views

Antwort

276

Sie den Pseudo-Selektor :checkbox mit einem Aufruf von jQuery is Funktion verwenden können:

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

Dies ist die Methode, die ich immer verwende. –

+0

Sie können wirklich nicht einfacher als das bekommen. – KyleFarris

+8

Warum den Selector-Motor dafür verwenden? Es ist völlig unnötig. –

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

Oder mehr des Stils von jQuery:

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

Perfekt gültig. Nicht die einfachste. – KyleFarris

+6

Es spart mit jQuery Selektor-Engine, deren Verwendung hier völlig unangemessen ist. Die erste Variante ist um so besser, da jede Möglichkeit von jQuerys verwirrter 'attr()' -Funktion vermieden wird. –

+3

@Tim Down ist richtig - Sie sollten 'attr()' in 'prop()' ändern, afaik. 'attr()' erhält nicht immer den "echten" Attributwert vom Browser (d. h. geprüft oder nicht). Ehrlich gesagt bin ich mir nicht sicher, warum das so ist, aber ich habe das vor einiger Zeit gelernt. – thekingoftruth

2

Verwenden diese Funktion:

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

Oder die jQuery-Plugin:

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

Eine nicht-jQuery-Lösung wie eine jQuery-Lösung ist:

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