3 回答

TA貢獻(xiàn)2036條經(jīng)驗(yàn) 獲得超8個(gè)贊
有的瀏覽器只要寫disabled,checked就可以了,而有的要寫成disabled ="disabled",checked="checked",比如用attr("checked")獲取checkbox的checked屬性時(shí)選中的時(shí)候可以取到值,值為"checked"但沒選中獲取值就是undefined。
jq提供新的方法“prop”來獲取這些屬性,就是來解決這個(gè)問題的,以前我們使用attr獲取checked屬性時(shí)返回"checked"和"",現(xiàn)在使用prop方法獲取屬性則統(tǒng)一返回true和false。
那么,什么時(shí)候使用attr(),什么時(shí)候使用prop()?
1.添加屬性名稱該屬性就會(huì)生效應(yīng)該使用prop();
2.是有true,false兩個(gè)屬性使用prop();
3.其他則使用attr();
以下是官方建議attr(),prop()的使用:

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
一、attr(name|properties|key,value|fn)
概述:
設(shè)置或返回被選元素的屬性值。
參數(shù)
name:類型String
屬性名稱
properties:類型Map
作為屬性的“名/值對”對象
key,value:類型String,Object
屬性名稱,屬性值
key,function(index, attr):類型String,Function
1:屬性名稱。
2:返回屬性值的函數(shù),第一個(gè)參數(shù)為當(dāng)前元素的索引值,第二個(gè)參數(shù)為原先的屬性值。
示例
參數(shù)name 描述:
返回文檔中所有圖像的src屬性值。
12 | jQuery 代碼: $( "img" ).attr( "src" ); |
參數(shù)properties 描述:
為所有圖像設(shè)置src和alt屬性。
12 | jQuery 代碼: $( "img" ).attr({ src: "test.jpg" , alt: "Test Image" }); |
參數(shù)key,value 描述:
為所有圖像設(shè)置src屬性。
12 | jQuery 代碼: $( "img" ).attr( "src" , "test.jpg" ); |
參數(shù)key,回調(diào)函數(shù) 描述:
把src屬性的值設(shè)置為title屬性的值。
12 | jQuery 代碼: $( "img" ).attr( "title" , function () { return this .src }); |
二、prop(name|properties|key,value|fn)
概述
獲取在匹配的元素集中的第一個(gè)元素的屬性值。
隨著一些內(nèi)置屬性的DOM元素或window對象,如果試圖將刪除該屬性,瀏覽器可能會(huì)產(chǎn)生錯(cuò)誤。jQuery第一次分配undefined值的屬性,而忽略了瀏覽器生成的任何錯(cuò)誤
參數(shù)
name:類型String
屬性名稱
properties:類型Map
作為屬性的“名/值對”對象
key,value:類型String,Object
屬性名稱,屬性值
key,function(index, attr):類型String,Function
1:屬性名稱。
2:返回屬性值的函數(shù),第一個(gè)參數(shù)為當(dāng)前元素的索引值,第二個(gè)參數(shù)為原先的屬性值。
示例
參數(shù)name 描述:
選中復(fù)選框?yàn)閠rue,沒選中為false
12 | jQuery 代碼: $( "input[type='checkbox']" ).prop( "checked" ); |
參數(shù)properties 描述:
禁用頁面上的所有復(fù)選框。
1234 | jQuery 代碼: $( "input[type='checkbox']" ).prop({ disabled: true }); |
參數(shù)key,value 描述:
禁用和選中所有頁面上的復(fù)選框。
123 | jQuery 代碼: $( "input[type='checkbox']" ).prop( "disabled" , false ); $( "input[type='checkbox']" ).prop( "checked" , true ); |
參數(shù)key,回調(diào)函數(shù) 描述:
通過函數(shù)來設(shè)置所有頁面上的復(fù)選框被選中。
1234 | jQuery 代碼: $( "input[type='checkbox']" ).prop( "checked" , function ( i, val ) { return !val; }); |

TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
根據(jù)官方的建議:具有 true 和 false 兩個(gè)屬性的屬性,如 checked, selected 或者 disabled 使用prop(),其他的使用 attr()
- 3 回答
- 0 關(guān)注
- 643 瀏覽
添加回答
舉報(bào)