兩者對比
jquery方法
原理適合場景
缺陷prop
解析原生property
element.property
radio/checkbox
select標籤
等需要讀boolean和索引的場合
讀不到自定義屬性
如my屬性讀不到
attr
通過attr api去讀取
element.getattribute(propertyname)
除prop場景外
可能讀不到boolean或一些索引值
如checked,selectedindex
prop方法 例子
在控制台輸入
document.getelementsbytagname('a')[0].href控制台輸出
""href就是標籤a對映的dom物件htmlanchorelement的原生屬性。
jquery原始碼
prop: functionattr方法 例子( elem, name, value )
notxml = ntype !== 1 || !jquery.isxmldoc( elem );
if( notxml )
if ( value !==undefined )
else
} else
else}}
在控制台輸入
document.getelementsbytagname('a')[10].getattribute('href')控制台輸出
""getattribute就是attr類的查詢api。其他還有刪除、修改、增加。
jquery原始碼 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
attr:
function
( elem, name, value, pass )
if
( pass && jquery.isfunction( jquery.fn[ name ] ) )
// fallback to prop when attributes are not supported
if
(
typeof
elem.getattribute ===
"undefined"
)
notxml = ntype !== 1 || !jquery.isxmldoc( elem );
// all attributes are lowercase
// grab necessary hook if one is defined
if
( notxml )
if
( value !== undefined )
else
if
( hooks &&
"set"
in
hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined )
else
}
else
if
( hooks &&
"get"
in
hooks && notxml && (ret = hooks.get( elem, name )) !==
null
)
else
}
Jquery prop與attr的區別
最近因專案需要用到核取方塊,其中乙個控制全選。全選 ckb all click function else 一開始是像上面這樣做是可以實現效果的,複製貼上同樣的 到其他需要的地方,結果發現不起作用,找了半天,發現用的jquery版本是1.8的,所以使用attr不起作用。下面就講講prop與attr的...
Jquery prop與attr的差別
近期因專案須要用到核取方塊,當中乙個控制全選。全選 ckb all click function else 一開始是像上面這樣做是能夠實現效果的。複製貼上相同的 到其它須要的地方。結果發現不起作用,找了半天。發現用的jquery版本號是1.8的,所以使用attr不起作用。以下就講講prop與attr...
attr 和prop 的區別
prop是1.6.1才新出來的,兩者從中文意思理解,都是獲取 設定屬性的方法 attributes和 properties 1 對於html元素本身就帶有的固有屬性,在處理時,使用prop方法。2 對於html元素是自定義的dom屬性,在處理時,使用attr方法。例子1 元素的dom屬性有 href...