2012-04-17 27 views
22

Tôi có thuộc tính disabled='disabled' trên thẻ <a>. Làm cách nào để kiểm tra xem thuộc tính này có nằm trên thẻ của tôi hay không bằng cách sử dụng jquery? Mã sau đây trả về undefined. Tôi có thể thấy thuộc tính disabled trên thẻ trong firebug và tất cả các thuộc tính khác trên giá trị trả về thành công bằng cách sử dụng cùng một cú pháp. Tôi nhận ra disabled là thuộc tính tùy chỉnh cho một thẻ <a>.Jquery được sử dụng như thế nào để kiểm tra thuộc tính 'đã tắt' trên thẻ <a>?

$('#anchorID').attr('disabled'); 
+1

Tôi không thêm bị vô hiệu hóa, tôi chỉ cần kiểm tra sự hiện diện của nó. – coder

Trả lời

36

Hãy thử

$('#anchorID').is('[disabled=disabled]') 

sẽ trả về true nếu disabled="disabled" là một thuộc tính cho phần tử.

+1

Tuyệt vời ... Đã lưu ngày của tôi! –

34

Cách mới và cải tiến là sử dụng prop() chức năng của jQuery: http://api.jquery.com/prop/#prop1

$('#anchorID').prop("disabled");

Sự khác biệt giữa các thuộc tính và các tài sản có thể quan trọng trong những tình huống cụ thể. Trước jQuery 1.6, phương thức .attr() đôi khi lấy các giá trị thuộc tính vào tài khoản khi truy xuất một số thuộc tính, điều này có thể gây ra hành vi không nhất quán. Kể từ jQuery 1.6, phương thức .prop() cung cấp một cách để truy lục một cách rõ ràng các giá trị thuộc tính, trong khi .attr() truy lục các thuộc tính.

+1

+1 '.prop()' chắc chắn là tốt nhất. Đã xóa câu trả lời của tôi. :) – iambriansreed

+3

Đây là một câu trả lời rất thông tin nhưng nó không trả lại giá trị chính xác cho trường của tôi. – coder

+1

Điều này không thực sự hoạt động trên các thẻ . Nó tốt cho các thẻ

Các vấn đề liên quan