1. 程式人生 > >jquery裏的attr()方法和prop()方法的區別

jquery裏的attr()方法和prop()方法的區別

寫博客 選中 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()方法的區別