jquery給元素設(shè)置屬性的簡單方法
設(shè)置方法:1、使用attr()方法,語法“$(selector).attr(屬性名,值)”或“$(selector).attr({屬性名:值;})”;2、使用prop()方法,語法“$(selector).prop(屬性名,值)”。
1、使用attr()方法
attr() 方法設(shè)置或返回被選元素的屬性值。根據(jù)該方法不同的參數(shù),其工作方式也有所差異。
語法:
//單個(gè)屬性
$(selector).attr(屬性名,值)
//多個(gè)屬性
$(selector).attr({屬性名:值;屬性值:值...})2、使用prop()方法
prop() 方法設(shè)置或返回被選元素的屬性和值。
當(dāng)該方法用于設(shè)置屬性值時(shí),則為匹配元素集合設(shè)置一個(gè)或多個(gè)屬性/值對(duì)。
語法:
//單個(gè)屬性
$(selector).prop(屬性名,值)
//多個(gè)屬性
$(selector).prop({屬性名:值;屬性值:值...})3、attr()和prop()方法的區(qū)別
prop() 方法和 attr() 方法相似,都是用來獲取或設(shè)置元素的 HTML 屬性的,不過兩者也有著本質(zhì)上的區(qū)別。
jQuery 官方建議:具有 true 和 false 這兩種取值的屬性,如 checked、selected 和 disabled 等,建議使用 prop() 方法來操作,而其他的屬性都建議使用 attr() 方法來操作。
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="js/jquery-1.10.2.min.js"></script>
<script>
$(function () {
$('input[type="radio"]').change(function(){
var bool = $(this).attr("checked");
if(bool){
$("p").text("你選擇的是:" + $(this).val());
}
})
})
</script>
</head>
<body>
<div>
<label><input type="radio" name="fruit" value="蘋果" />蘋果</label>
<label><input type="radio" name="fruit" value="香蕉" />香蕉</label>
<label><input type="radio" name="fruit" value="西瓜" />西瓜</label>
</div>
<p></p>
</body>
</html>預(yù)覽效果如圖 1 所示。

分析:
$().change(function(){
……
})在這個(gè)例子中,我們其實(shí)是想通過$(this).attr("checked")判斷單選框是否被選中,如果被選中,就獲取該單選框的 value 值。可是運(yùn)行代碼后發(fā)現(xiàn):完全沒有效果!這是為什么呢?
實(shí)際上,對(duì)于表單元素的 checked、selected、disabled 這些屬性,我們使用 attr() 方法是沒法獲取的,而必須使用 prop() 方法來獲取。因此,我們把 attr() 方法替換成 prop() 方法就有效果了。
其實(shí),prop()方法的出現(xiàn)就是為了彌補(bǔ) attr() 方法在表單屬性操作中的不足。記住一句話:如果某個(gè)屬性沒法使用 attr() 方法來獲取或設(shè)置,改換 prop() 方法就可以實(shí)現(xiàn)。
補(bǔ)充:jQuery給標(biāo)簽添加自定義屬性
jQuery給標(biāo)簽添加自定義屬性
下面代碼包含了添加和獲取自定義屬性。
添加的屬性值有數(shù)字,類數(shù)組,對(duì)象,詳細(xì)用法見備注。
<script type="text/javascript">
// 設(shè)置屬性
$('#box').css('width', '200px')
$('#a1').attr('href',"http://www.baidu.com")
// 設(shè)置多個(gè)屬性
// 注意:屬性名不用加引號(hào)
$('#a1').attr({ href: "http://t.tt", target: "_blank" })
// *********** 添加和獲取自定義屬性 ************
// ==========1.設(shè)置一個(gè)自定義值==========
$('#a1').attr('myIndex',2)
console.log($('#a1').attr('myIndex'))
// ==========2.設(shè)置多個(gè)自定義值==========
// 注意:屬性名要加引號(hào),不能使用阿拉伯?dāng)?shù)字作為屬性名
fruitsList = {'a':'蘋果', 'b':'香蕉', 'c':'西瓜'}
// !!!!!!!!!!! 不正確的設(shè)置 !!!!!!!!!!!
$('#a1').attr('fruit',fruitsList)
console.log($('#a1').attr('fruit')) // 打?。篬object Object],沒有實(shí)際用處
// 正確設(shè)置和獲取屬性
$('#a1').attr(fruitsList)
console.log($('#a1').attr('a')) // 打印: 蘋果
console.log($('#a1').attr('b')) // 打印: 香蕉
console.log($('#a1').attr('c')) // 打印: 西瓜
// ==========3.設(shè)置自定義值為對(duì)象===========
// 創(chuàng)建對(duì)象
function Person(name, age){
this.name = name
this.age = age
}
person1 = new Person('Lili', 20)
// !!!!!!!!!!! 不正確的設(shè)置 !!!!!!!!!!!
$('#a1').attr('myattar', person1)
console.log($('#a1').attr('myattar')) // 打?。篬object Object],沒有實(shí)際用處
// 正確設(shè)置和獲取屬性
$('#a1').attr(person1)
console.log($('#a1').attr('name'))
console.log($('#a1').attr('age'))
</script>
總結(jié)
到此這篇關(guān)于jquery給元素設(shè)置屬性的文章就介紹到這了,更多相關(guān)jquery元素設(shè)置屬性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
功能強(qiáng)大的jquery.validate表單驗(yàn)證插件
這篇文章主要為大家詳細(xì)介紹了功能強(qiáng)大的jquery.validate表單驗(yàn)證插件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
jquery通過load獲取文件的內(nèi)容并跳到錨點(diǎn)的方法
這篇文章主要介紹了jquery通過load獲取文件的內(nèi)容并跳到錨點(diǎn)的方法,涉及l(fā)oad及animate等方法的使用技巧,需要的朋友可以參考下2015-01-01
Validform驗(yàn)證時(shí)可以為空否則按照指定格式驗(yàn)證
這篇文章主要介紹了Validform驗(yàn)證時(shí)可以為空否則按照指定格式驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2017-10-10
jquery select 設(shè)置默認(rèn)選中的示例代碼
本篇文章主要是對(duì)jquery select 設(shè)置默認(rèn)選中的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助2014-02-02
jQuery實(shí)現(xiàn)Email郵箱地址自動(dòng)補(bǔ)全功能代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)Email郵箱地址自動(dòng)補(bǔ)全功能代碼,涉及jQuery鼠標(biāo)事件及字符操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11
解決Jquery下拉框數(shù)據(jù)動(dòng)態(tài)獲取的問題
下面小編就為大家分享一篇解決Jquery下拉框數(shù)據(jù)動(dòng)態(tài)獲取的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-01-01

