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(){ …… })
在這個例子中,我們其實(shí)是想通過$(this).attr("checked")判斷單選框是否被選中,如果被選中,就獲取該單選框的 value 值??墒沁\(yùn)行代碼后發(fā)現(xiàn):完全沒有效果!這是為什么呢?
實(shí)際上,對于表單元素的 checked、selected、disabled 這些屬性,我們使用 attr() 方法是沒法獲取的,而必須使用 prop() 方法來獲取。因此,我們把 attr() 方法替換成 prop() 方法就有效果了。
其實(shí),prop()方法的出現(xiàn)就是為了彌補(bǔ) attr() 方法在表單屬性操作中的不足。記住一句話:如果某個屬性沒法使用 attr() 方法來獲取或設(shè)置,改換 prop() 方法就可以實(shí)現(xiàn)。
補(bǔ)充: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í)際用處 // 正確設(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í)際用處 // 正確設(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)文章
功能強(qiáng)大的jquery.validate表單驗(yàn)證插件
這篇文章主要為大家詳細(xì)介紹了功能強(qiáng)大的jquery.validate表單驗(yàn)證插件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11jquery通過load獲取文件的內(nèi)容并跳到錨點(diǎn)的方法
這篇文章主要介紹了jquery通過load獲取文件的內(nèi)容并跳到錨點(diǎn)的方法,涉及l(fā)oad及animate等方法的使用技巧,需要的朋友可以參考下2015-01-01Validform驗(yàn)證時可以為空否則按照指定格式驗(yàn)證
這篇文章主要介紹了Validform驗(yàn)證時可以為空否則按照指定格式驗(yàn)證的相關(guān)資料,需要的朋友可以參考下2017-10-10jquery select 設(shè)置默認(rèn)選中的示例代碼
本篇文章主要是對jquery select 設(shè)置默認(rèn)選中的示例代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-02-02jQuery實(shí)現(xiàn)Email郵箱地址自動補(bǔ)全功能代碼
這篇文章主要介紹了jQuery實(shí)現(xiàn)Email郵箱地址自動補(bǔ)全功能代碼,涉及jQuery鼠標(biāo)事件及字符操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11解決Jquery下拉框數(shù)據(jù)動態(tài)獲取的問題
下面小編就為大家分享一篇解決Jquery下拉框數(shù)據(jù)動態(tài)獲取的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01