JavaScript getAttribute()
getAttribute方法可以返回元素指定屬性的值。
如果對應的屬性不存在,那麼方法返回null或者空字串""。
特別說明:如果屬性不存在,在當前標準瀏覽器返回null,比較老舊瀏覽器可能返回""。
與此方法對應的是setAttribute,具體參閱JavaScript setAttribute()一章節。
不少朋友可能有這樣的疑問,直接通過dom物件就可以獲取其對應屬性:
[JavaScript] 純文字檢視 複製程式碼dom.id
比如上述程式碼可以獲取元素的id屬性值,那為何還要使用getAttribute方法。
後面會通過程式碼例項進行詳細的分析介紹兩者之間的區別差異。
語法結構:
[JavaScript] 純文字檢視 複製程式碼element.getAttribute(attributename)
引數解析:
(1).attributename:必需,屬性名稱。
瀏覽器支援:
(1).IE瀏覽器支援此方法。
(2).edge瀏覽器支援此方法。
(3).谷歌瀏覽器支援此方法。
(4).opera瀏覽器支援此方法。
(5).火狐瀏覽器支援此方法。
(6).safria瀏覽器支援此方法。
程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div{ width:120px; height:60px; text-align:center; line-height:60px; background-color:#ccc; } </style> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let obt=document.getElementById("bt"); obt.onclick=function(){ odiv.innerHTML=odiv.getAttribute("id"); } } </script> </head> <body> <div id="ant"></div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
程式碼執行效果截圖如下:
點選按鈕可以將div元素的id屬性值寫入div。
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div{ width:120px; height:60px; text-align:center; line-height:60px; background-color:#ccc; } </style> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let obt=document.getElementById("bt"); obt.onclick=function(){ odiv.innerHTML=odiv.getAttribute("data-ant"); } } </script> </head> <body> <div id="ant" data-ant="螞蟻部落"></div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).data-ant是符合HTML5規範的自定義屬性,此方法對於非規範自定義屬性同樣有效。
(2).通過getAttribute方法可以將其屬性值寫入div。
(3).特別注意的是,屬性名稱必須寫全,這一點與dataset屬性不同。
關於dataset的用法參閱JavaScript dataset 屬性 一章節。
getAttribute方法與dom物件直接獲取屬性值區別:
兩種方式都可以獲取對應屬性的值,但是區別也很明顯。
dom物件只能獲取HTML內建標準屬性的值,比如id或者title,對於自定義屬性返回值為undefined。
getAttribute方法則能力更加強大,沒有上述限制,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div{ width:120px; height:60px; text-align:center; background-color:#ccc; } </style> <script> window.onload=function(){ let odiv=document.getElementById("ant"); let obt=document.getElementById("bt"); obt.onclick=function(){ let str=""; str=str+odiv.getAttribute("antzone"); str=str+"<br/>"+odiv.antzone; odiv.innerHTML=str; } } </script> </head> <body> <div id="ant" antzone="螞蟻部落"></div> <input type="button" id="bt" value="檢視效果"/> </body> </html>
程式碼執行效果截圖如下:
再來看一個兩者的區別,對於style屬性和事件屬性,區別也非常明顯:
(1).dom.style返回的是一個物件,而getAttribute("style")返回的是CSS程式碼。
(2).dom.onclick之類的返回的是一個方法,而getAttribute("onclick")返回的是程式碼字串。
非常的簡單,感興趣的朋友可以自行做一下演示,如果有不明之處,可以在文章底部留言。
相關文章
- getAttribute() 與 attr() 的區別
- python-__getattr__ 和 __getattribute__Python
- dataset、setAttribute()和getAttribute() 區別
- JavaWeb開發Servlet之getParameter和getAttribute的區別,JavaWebServlet
- Python魔法方法__getattr__和__getattribute__詳解Python
- 魔術方法(一) __getattribute__ VS __getattr__ VS __getitem___
- javaweb中,如果過濾器想使用getAttribute()方法,必須要對request進行強制轉換JavaWeb過濾器
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- [Javascript] How javascript read the property?JavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- “This” is For JavaScriptJavaScript
- This in JavaScriptJavaScript
- JavaScript -"this"JavaScript
- JavaScriptJavaScript
- javascript ??JavaScript
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- [Javascript] Perform Set Operations using JavaScript Set MethodsJavaScriptORM
- javascript — == vs ===JavaScript
- JavaScript selectedIndexJavaScriptIndex
- JavaScript deleteCell()JavaScriptdelete
- JavaScript lastElementChildJavaScriptAST
- JavaScript hasAttribute()JavaScript
- JavaScript getAttributeNode()JavaScript
- JavaScript replaceChild()JavaScript
- JavaScript remove()JavaScriptREM
- JavaScript appendChild()JavaScriptAPP
- JavaScript deleteRow()JavaScriptdelete
- JavaScript clientYJavaScriptclient
- JavaScript之thisJavaScript
- JavaScript isFinite()JavaScript
- JavaScript toggle()JavaScript
- JavaScript Boolean()JavaScriptBoolean
- JavaScript escape()JavaScript
- JavaScript parseFloat()JavaScript
- JavaScript unescape()JavaScript