jQuery prop和attr的區別

2021-06-25 18:28:45 字數 3074 閱讀 5817

兩者對比

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: function

( elem, name, value )

notxml = ntype !== 1 || !jquery.isxmldoc( elem );

if( notxml )

if ( value !==undefined )

else

} else

else}}

attr方法 例子

在控制台輸入

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(typeofelem.getattribute ==="undefined")

notxml = ntype !== 1 || !jquery.isxmldoc( elem );

// all attributes are lowercase

// grab necessary hook if one is defined

if( notxml )

if( value !== undefined )elseif( hooks &&"set"inhooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined )else

}elseif( hooks &&"get"inhooks && 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...