2009-09-28 41 views

Trả lời

276

Bạn có thể sử dụng pseudo-selector :checkbox với một cuộc gọi đến is chức năng của jQuery:

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

Đây là phương pháp tôi luôn sử dụng. –

+0

Bạn thực sự không thể đơn giản hơn thế. – KyleFarris

+8

Tại sao lại sử dụng công cụ chọn cho công cụ này? Nó hoàn toàn không cần thiết. –

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

Hoặc, nhiều phong cách của jQuery:

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

hoàn toàn hợp lệ. Không đơn giản nhất. – KyleFarris

+6

Nó tiết kiệm bằng cách sử dụng công cụ chọn của jQuery, việc sử dụng nó ở đây là hoàn toàn không phù hợp. Biến thể đầu tiên là tốt hơn nhiều, vì tránh bất kỳ khả năng nào của hàm nhầm lẫn (attr) của jQuery làm rối tung mọi thứ. –

+3

@Tim Down là đúng - bạn nên thay đổi 'attr()' thành 'prop()', afaik. 'attr()' không phải lúc nào cũng nhận được giá trị thuộc tính "thực" (tức là đã kiểm tra hay không) từ trình duyệt. Thành thật mà nói không chắc chắn tại sao đây là trường hợp, nhưng tôi đã học được điều này một chút. – thekingoftruth

2

Sử dụng chức năng này:

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

Hoặc plugin này jquery:

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

Một giải pháp phi jQuery là giống như một giải pháp jQuery:

document.querySelector('#myinput').getAttribute('type') === 'checkbox' 
Các vấn đề liên quan