1. 程式人生 > >prop()和attr()

prop()和attr()

code edi ted http jquer 一個 attribute clas 方法

attributesproperties(屬性值)之間的差異在特定情況下是很重要。jQuery 1.6之前.attr()方法在取某些 attribute 的值時,會返回 property 的值,這就導致了結果的不一致。從 jQuery 1.6 開始.prop()方法 方法返回 property 的值,而 .attr() 方法返回 attributes 的值。

例如, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, 和 defaultSelected應使用.prop()方法進行取值或賦值。 在jQuery1.6之前,這些屬性使用.attr()

方法取得,但是這並不是元素的attr屬性。他們沒有相應的屬性(attributes),只有特性(property)。

例如,考慮一個DOM元素的HTML標記中定義的<input type="checkbox" checked="checked" /> ,並假設它是一個JavaScript變量命名的elem

elem.checked true (Boolean) 將隨著復選框狀態的改變而改變
$(elem).prop("checked") true (Boolean) 將隨著復選框狀態的改變而改變
elem.getAttribute("checked") "checked"
(String) 復選框的初始狀態;不會改變
$(elem).attr("checked") (1.6) "checked" (String) 復選框的初始狀態;不會改變
$(elem).attr("checked") (1.6.1+) "checked" (String) 將隨著復選框狀態的改變而改變
$(elem).attr("checked") (pre-1.6) true (Boolean) 將隨著復選框狀態的改變而改變

prop()和attr()