1.attr,prop
對於HTML元素本身就帶有的固有屬性,在處理時,使用prop方法。對於自定義的屬性是取不到的;
對於HTML元素我們自己自定義的DOM屬性,在處理時,使用attr方法。
2.attr,data
① attr獲取的屬性是string
data獲取的可能是string,number,boolean,object,null,array
jQuery會嘗試將字符串轉換為一個JavaScript值(包括布爾值(booleans),數字(numbers),對象(objects),數組(arrays)和空(null))。
② data-屬性是在第一次使用這個數據屬性后不再存取或改變(所有的數據值都在jQuery內部存儲)。
調用 .data() 時如果不帶參數,將會以 JavaScript 對象的形式獲取所有數據。這個對象可以安全的存放在變量中,因為一旦這個新對象被提取出來,之后對元素進行的 .data(obj) 操作,將不會再影響這個對象。
例子:
$.attr()每次都從DOM元素中取屬性的值,即和視圖中標簽內的屬性值保持一致。
$.attr('data-foo')會從標簽內獲得data-foo屬性值;
$.attr('data-foo', 'world')會將字符串'world'塞到標簽的'data-foo'屬性中;
$.data()是從Jquery對象中取值,由於對象屬性值保存在內存中,因此可能和視圖里的屬性值不一致的情況。
$.data('foo')會從Jquery對象內獲得foo的屬性值,不是從標簽內獲得data-foo屬性值;
$.data('foo', 'world')會將字符串'world'塞到Jquery對象的'foo'屬性中,而不是塞到視圖標簽的data-foo屬性中。
