一、attr():獲取,添加,設(shè)置屬性節(jié)點
成都創(chuàng)新互聯(lián)公司專注于商丘網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供商丘營銷型網(wǎng)站建設(shè),商丘網(wǎng)站制作、商丘網(wǎng)頁設(shè)計、商丘網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造商丘網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供商丘網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1.當只有一個參數(shù)時為獲取屬性節(jié)點,無論找到多少個元素,都 只會返回第一個元素 的屬性節(jié)點的值
2.當有兩個參數(shù)時為 添加 或 設(shè)置 屬性節(jié)點的值
(1).如果設(shè)置的屬性不存在,則為 所有找到的元素 添加新屬性節(jié)點
(2).如果設(shè)置的屬性存在,則為 所有找到的元素 設(shè)置屬性節(jié)點
二、removeAttr(): 刪除 所有找到的屬性節(jié)點
二、操作多個屬性節(jié)點時
1.attr():使用對象的形式
2.同時刪除多個屬性節(jié)點, 添加空格 即可
attr()是獲取或設(shè)置某個元素的屬性。
input type="text" name="userName" title="請輸入用戶名稱!"
定義和用法
根據(jù)該方法不同的參數(shù),其工作方式也有所差異。
當該方法用于返回屬性值,則返回第一個匹配元素的值。
當該方法用于設(shè)置屬性值,則為匹配元素設(shè)置一個或多個屬性/值對。
例如:
獲取輸入框的title屬性:$("input[name=userName]").attr("title");
設(shè)置輸入框的title屬性:$("input[name=userName]").attr("title","請輸入姓名!");
擴展資料:
相關(guān)語法
返回屬性的值:$(selector).attr(attribute)
設(shè)置屬性和值:$(selector).attr(attribute,value)
使用函數(shù)設(shè)置屬性和值:$(selector).attr(attribute,function(index,currentvalue))
設(shè)置多個屬性和值:$(selector).attr({attribute:value, attribute:value,...})
參考資料來源:百度百科-attr()
參考資料來源:百度百科-jQuery
兩者從中文意思理解,都是獲取/設(shè)置屬性的方法。
attr 方法一般用于操作自定義屬性,通過訪問、操作?DOM 元素的屬性節(jié)點來工作,類似 JS 中的?setAttribute("屬性","值")和取得屬性值getAttribute("屬性"),事實上 jQuery 的源碼中也是利用這兩個原生方法。
那么為什么還要有 prop 方法呢?不是多此一舉嗎?其實不然,prop 方法是 jQuery v1.6.1 才新出來的,性能要更好一些,解決了?window 或 document 無法使用 attr 方法的問題,同時在獲取元素狀態(tài)時返回布爾值,大大方便了對狀態(tài)的判斷。prop 一般用于操作 HTML 元素固有屬性。
舉一些例子來輔助說明吧,假設(shè)有如下 HTML 元素:
input?type="text"?id="ipt1"?name="demo"
input?type="radio"?id="radio"?disabled
input?type="checkbox"?id="ckbox"?checked
input?type="text"?id="ipt3"
input?type="text"?id="ipt4"
span?id="span"?data-tip="abc"/span
驗證結(jié)果如下:
console.group('獲取固有屬性');
console.log($('#ipt1').attr('name'));??//?'demo'
console.log($('#ipt1').prop('name'));??//?'demo'
console.groupEnd();
console.group('獲取固有屬性-狀態(tài)值');
console.log($('#radio').attr('disabled'));??//?'disbaled'
console.log($('#radio').prop('disabled'));??//?true
console.log($('#ckbox').attr('checked'));??//?'checked'
console.log($('#ckbox').prop('checked'));??//?true
console.groupEnd();
$('#ipt3').attr('readonly',?true);??//?文本框處于只讀狀態(tài)
$('#ipt4').prop('readonly',?true);??//?同上
console.group('獲取自定義屬性');
console.log($('#span').attr('data-tip'));??//?'abc'
console.log($('#span').prop('data-tip'));??//?undefined
console.groupEnd();
console.group('獲取不存在的自定義屬性');
console.log($('#span').attr('data-none'));??//?undefined
console.log($('#span').prop('data-none'));??//?undefined
console.groupEnd();
1、jquery中用attr()方法來獲取和設(shè)置元素屬性,attr是attribute(屬性)的縮寫,在jQuery DOM操作中會經(jīng)常用到attr(),attr()有4個表達式。
①、attr(屬性名)? ? ? ?//獲取屬性的值(取得第一個匹配元素的屬性值。通過這個方法可以方便地從第一個匹配元素中獲取一個屬性的值。如果元素沒有相應(yīng)屬性,則返回 undefined )
②、attr(屬性名, 屬性值)? ?//設(shè)置屬性的值 (為所有匹配的元素設(shè)置一個屬性值。)
③、attr(屬性名,函數(shù)值)? ? ?//設(shè)置屬性的函數(shù)值? (為所有匹配的元素設(shè)置一個計算的屬性值。不提供值,而是提供一個函數(shù),由這個函數(shù)計算的值作為屬性值。)
④、attr(properties)? ? //給指定元素設(shè)置多個屬性值,即:{屬性名一: “屬性值一” , 屬性名二: “屬性值二” , … … }。(這是一種在所有匹配元素中批量設(shè)置很多屬性的最佳方式。 注意,如果你要設(shè)置對象的class屬性,你必須使用'className' 作為屬性名?;蛘吣憧梢灾苯邮褂?class'或者'id'。)
2、那么怎么刪除屬性呢?
jquery中刪除屬性的關(guān)鍵詞是: removeAttr 注意A是大寫的. 看看怎么用的:
同樣是用法一中的html代碼, 我想刪掉li的title屬性, 那么就這樣:
script
$("ul li:eq(1)").removeAttr("title");
/script
就這么簡單, attr 其實就是原生js中 getAttribute 的簡化實現(xiàn), 而removeAttr 就是 removeAttribute 的簡寫了。
3、那么是否有跟attr()相似的屬性呢?
jquery中val()與之類似,
$(this).val();獲取某個元素節(jié)點的value值,相當于$(this).attr("value");
$(this).val(value);設(shè)置某個元素節(jié)點的value值,相當于$(this).attr("value",value);