Leaderboard ads banner

jQuery .prop() và .attr() khác nhau như thế nào?

Trong jQuery cả hai phương thức prop()attr() đều đc sử dụng để thay đổi giá trị một phương thức của phần tử. Ví dụ như để vô hiệu hoá một button thì cả hải đoạn mã đưới đều có thể được sử dụng:

$("button").prop("disabled", true);

$("button").attr("disabled", true);

Vậy thì hai phương thức này có khác nhau hay không và khác nhau như thế nào?

Hani Pham Hani Pham

Bạn có tham khảo thêm ở link này để thêm thông tin: http://www.codehub.vn/Phan-Biet-Attribute-va-Property-trong-JavaScript-va-HTML

3 Câu Trả Lời

Phan Quang Phan Quang
  • attr = attribute -> thuộc tính của thẻ html
  • prop = property -> thuộc tính của dom element

  • attr luôn trả về chuỗi, prop trả về giá trị (chuỗi, số, bool)
  • attr làm thay đổi cấu trúc html, prop thì không.

Vd:

<input type="text" id="id1">

Attr:

$("#id1").attr("type", "password") => html sẽ đổi thành password, prop thì không, nhưng value vẫn là password.

  • mỗi html attribute tương ứng với 1 element property, nhưng không phải toàn bộ. Ví dụ custom attribute không sử dụng được trong prop()
IT Pro IT Pro

.attr() changes attributes for that HTML tag.

.prop() changes properties for that HTML tag as per the DOM tree.

it code it code

Sự khác biệt giữa các thuộc tính và thuộc tính có thể quan trọng trong các tình huống cụ thể. Trước jQuery 1.6, phương thức .attr() đôi khi đưa 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, 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 xuất rõ ràng các giá trị thuộc tính, trong khi .attr() truy xuất các thuộc tính.

Ví dụ

Ví dụ: selectedIndex , tagName , nodeName , nodeType , ownerDocument , defaultChecked và defaultSelected phải được truy xuất và đặt bằng phương thức .prop (). Trước jQuery 1.6 , các thuộc tính này có thể truy xuất được với phương thức .attr (), nhưng điều này không nằm trong phạm vi attr. Chúng không có các thuộc tính tương ứng và chỉ là các thuộc tính.

tài liệu tham khảo
Sự khác biệt giữa prop() và attr() trong jQuery và khi nào sử dụng attr() và prop()

Nội dung tối thiểu 100 ký tự

Câu Hỏi Liên Quan