您好,登錄后才能下訂單哦!
這篇文章主要介紹了jQuery中的prop和attr區別是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
在JQuery
中,對CheckBox
的操作分兩個階段,一個是JQuery1.6
之前的版本,一個是1.6之后的版本
<input type ='checkbox' id='checkbox'/> <script> var isChecked = $('#checkbox').attr('checked'); $('#checkbox').attr('checked',true); <script/>
但是細心的同學會發現,在jQuery1.6
之后,如果還像上面這么做,那肯定會出問題: $('#checkbox').attr('checked')
;獲取到的值并不是true
和false
,而是checked
或者undefined
jQuery
在之后的版本中對屬性和特性進行了比較細致的區分,什么是特性呢? 特性就是像 checked
,selectedIndex
, tagName
, nodeName
, nodeType
, ownerDocument
, defaultChecked
, 和defaultSelected
等等這些。
于build-in
屬性,attribute
和property
共享數據,attribute
更改了會對property
造成影響,反之亦然,但是兩者的自定義屬性是獨立的數據,即使name
一樣,也互不影響,看起來是下面這張圖,但是IE6、7
沒有作區分,依然共享自定義屬性數據
并不是所有的attribute
與對應的property
名字都一致,比如剛才使用的attribute
的class
屬性,使用property
操作的時候應該是這樣className t.className='active2'
;
對于值是true/false
的property
,類似于input
的checked attribute
等,attribute
取得值是HTML
文檔字面量值,property
是取得計算結果,property
改變并不影響attribute
字面量,但attribute
改變會一向property
計算 <input id="test3" type="checkbox"/>
var t=document.getElementById('test3'); console.log(t.getAttribute('checked'));//null console.log(t.checked);//false
t.setAttribute('checked','checked'); console.log(t.getAttribute('checked'));//checked console.log(t.checked);//true t.checked=false; console.log(t.getAttribute('checked'));//checked console.log(t.checked);//false
對于一些和路徑相關的屬性,兩者取得值也不盡相同,但是同樣attribute
取得是字面量,property
取得是計算后的完整路徑 <a id="test4" href="#">Click</a> js var
var t=document.getElementById('test4'); console.log(t.getAttribute('href'));//# console.log(t.href);//file:///C:Users/bsun/Desktop/ss/anonymous.html#
感謝你能夠認真閱讀完這篇文章,希望小編分享的“jQuery中的prop和attr區別是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。