tôi muốn tìm hiểu xem một đầu vào một hộp kiểm hay không, và sau đây không làm việc:jQuery kiểm tra xem hộp kiểm đầu vào có phải là loại không?
$("#myinput").attr('checked') === undefined
Cảm ơn bạn một lần nữa!
tôi muốn tìm hiểu xem một đầu vào một hộp kiểm hay không, và sau đây không làm việc:jQuery kiểm tra xem hộp kiểm đầu vào có phải là loại không?
$("#myinput").attr('checked') === undefined
Cảm ơn bạn một lần nữa!
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')
$("#myinput").attr('type') == 'checkbox'
>>> 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'
hoàn toàn hợp lệ. Không đơn giản nhất. – KyleFarris
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ứ. –
@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
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'); };
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'
Đây là phương pháp tôi luôn sử dụng. –
Bạn thực sự không thể đơn giản hơn thế. – KyleFarris
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. –