prop()和attr()
阿新 • • 發佈:2017-10-07
code edi ted http jquer 一個 attribute clas 方法 方法取得,但是這並不是元素的
attributes和properties(屬性值)之間的差異在特定情況下是很重要。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" |
$(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()