jquery給元素設(shè)置屬性的簡單方法
設(shè)置方法:1、使用attr()方法,語法“$(selector).attr(屬性名,值)”或“$(selector).attr({屬性名:值;})”;2、使用prop()方法,語法“$(selector).prop(屬性名,值)”。
1、使用attr()方法
attr() 方法設(shè)置或返回被選元素的屬性值。根據(jù)該方法不同的參數(shù),其工作方式也有所差異。
語法:
//單個屬性
$(selector).attr(屬性名,值)
//多個屬性
$(selector).attr({屬性名:值;屬性值:值...})2、使用prop()方法
prop() 方法設(shè)置或返回被選元素的屬性和值。
當(dāng)該方法用于設(shè)置屬性值時,則為匹配元素集合設(shè)置一個或多個屬性/值對。
語法:
//單個屬性
$(selector).prop(屬性名,值)
//多個屬性
$(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(){
……
})在這個例子中,我們其實是想通過$(this).attr("checked")判斷單選框是否被選中,如果被選中,就獲取該單選框的 value 值??墒沁\行代碼后發(fā)現(xiàn):完全沒有效果!這是為什么呢?
實際上,對于表單元素的 checked、selected、disabled 這些屬性,我們使用 attr() 方法是沒法獲取的,而必須使用 prop() 方法來獲取。因此,我們把 attr() 方法替換成 prop() 方法就有效果了。
其實,prop()方法的出現(xiàn)就是為了彌補 attr() 方法在表單屬性操作中的不足。記住一句話:如果某個屬性沒法使用 attr() 方法來獲取或設(shè)置,改換 prop() 方法就可以實現(xiàn)。
補充:jQuery給標(biāo)簽添加自定義屬性
jQuery給標(biāo)簽添加自定義屬性
下面代碼包含了添加和獲取自定義屬性。
添加的屬性值有數(shù)字,類數(shù)組,對象,詳細(xì)用法見備注。
<script type="text/javascript">
// 設(shè)置屬性
$('#box').css('width', '200px')
$('#a1').attr('href',"http://www.baidu.com")
// 設(shè)置多個屬性
// 注意:屬性名不用加引號
$('#a1').attr({ href: "http://t.tt", target: "_blank" })
// *********** 添加和獲取自定義屬性 ************
// ==========1.設(shè)置一個自定義值==========
$('#a1').attr('myIndex',2)
console.log($('#a1').attr('myIndex'))
// ==========2.設(shè)置多個自定義值==========
// 注意:屬性名要加引號,不能使用阿拉伯?dāng)?shù)字作為屬性名
fruitsList = {'a':'蘋果', 'b':'香蕉', 'c':'西瓜'}
// !!!!!!!!!!! 不正確的設(shè)置 !!!!!!!!!!!
$('#a1').attr('fruit',fruitsList)
console.log($('#a1').attr('fruit')) // 打?。篬object Object],沒有實際用處
// 正確設(shè)置和獲取屬性
$('#a1').attr(fruitsList)
console.log($('#a1').attr('a')) // 打印: 蘋果
console.log($('#a1').attr('b')) // 打印: 香蕉
console.log($('#a1').attr('c')) // 打印: 西瓜
// ==========3.設(shè)置自定義值為對象===========
// 創(chuàng)建對象
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è)置和獲取屬性
$('#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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于 jQuery 實現(xiàn)鍵盤事件監(jiān)聽控件
這篇文章主要介紹了基于 jQuery 的鍵盤事件監(jiān)聽控件,需要的朋友可以參考下2019-04-04
jquery+json實現(xiàn)數(shù)據(jù)列表分頁示例代碼
該實例中,新聞數(shù)據(jù)列表未使用表格顯示,下面有個不錯的示例完美實現(xiàn)實現(xiàn)數(shù)據(jù)列表分頁,感興趣的朋友不要錯過2013-11-11
用示例說明filter()與find()的用法以及children()與find()的區(qū)別分析
本篇文章介紹了,用示例說明filter()與find()的用法以及children()與find()的區(qū)別分析。需要的朋友參考下2013-04-04

