jquery裏的attr()方法和prop()方法的區別
阿新 • • 發佈:2017-06-25
寫博客 選中 define strong action jquer 問題 fine 哈哈
在jq的高版本裏出現了prop()方法,那麽attr()和prop()的區別在哪呢?這兩者分別在什麽情況用呢?
- 對於HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。
- 對於HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。
eg:<a href="http://www.baidu.com" target="_blank">哈哈</a>
像href、target這樣的屬性是html元素本身就帶有的固有屬性,在處理時,使用prop()方法;
eg: <a href="http://www.baidu.com" action="ccc">哈哈</a>
像action這樣的屬性是我們自己自定義的DOM屬性,在處理時,使用attr()方法;
eg:
<input id="chk1" type="checkbox" />是否可見
<input id="chk2" type="checkbox" checked="checked" />是否可見
像checkbox,radio和select這樣的元素,選中屬性對應“checked”和“selected”,這些也屬於固有屬性,因此需要使用prop方法去操作才能獲得正確的結果。
$("#chk1").prop("checked") == false $("#chk2").prop("checked") == true
如果上面使用attr方法,則會出現:
$("#chk1").attr("checked") == undefined $("#chk2").attr("checked") == "checked"
這也是我在工作上遇到的一個坑,花了比較長的時間才找到問題的所在,不過這次的經歷讓我牢牢記住了兩者之間的區別所在,收獲良多。
工作之後也好久沒寫博客了,加油!
jquery裏的attr()方法和prop()方法的區別