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")返回的是程式碼字串。
非常的簡單,感興趣的朋友可以自行做一下演示,如果有不明之處,可以在文章底部留言。
相關文章
- Request.getAttribute() 跟 Request.getSession().getAttribute() 之g有什N不同Session
- getAttribute()和setAttribute()用法
- getAttribute() 與 attr() 的區別
- getAttribute和getParameter的區別
- dataset、setAttribute()和getAttribute() 區別
- python-__getattr__ 和 __getattribute__Python
- getAttribute()和attr()一點區別
- dataset與setAttribute()、getAttribute()的區別
- Python __getattribute__ vs __getattr__ 淺談Python
- JavaWeb開發Servlet之getParameter和getAttribute的區別,JavaWebServlet
- python __setattr__、__getattr__、__getattribute__全面詳解Python
- Python魔法方法__getattr__和__getattribute__詳解Python
- 魔術方法(一) __getattribute__ VS __getattr__ VS __getitem___
- Python魔術方法 __getattr__、__getattribute__使用詳解Python
- python中__get__,__getattr__,__getattribute__的區別Python
- javaweb中,如果過濾器想使用getAttribute()方法,必須要對request進行強制轉換JavaWeb過濾器
- JavaScript高階:JavaScript物件導向,JavaScript內建物件,JavaScript BOM,JavaScript封裝JavaScript物件封裝
- javaScript系列[06]-javaScript和thisJavaScript
- 【JavaScript學習】JavaScript物件建立JavaScript物件
- 【轉】eval()函式(javascript) - [javaScript]函式JavaScript
- [Javascript] How javascript read the property?JavaScript
- JavaScript -"this"JavaScript
- javascript ??JavaScript
- This in JavaScriptJavaScript
- “This” is For JavaScriptJavaScript
- javascript thisJavaScript
- JavaScriptJavaScript
- javaScript系列[05]-javaScript和JSONJavaScriptJSON
- 44 道 JavaScript 難題(JavaScript Puzzlers!)JavaScript
- 【轉向JavaScript系列】AST in Modern JavaScriptJavaScriptAST
- javascript,還是javascript的問題JavaScript
- JavaScript 教程之JavaScript常用框架簡介JavaScript框架
- 《深入理解JavaScript》——2.3 JavaScript有用嗎JavaScript
- 【JavaScript】--JavaScript總結一覽無餘JavaScript
- 【HTML、JAVASCRIPT、CSS】3、Javascript基本概念HTMLJavaScriptCSS
- [Javascript] Understanding JavaScript Proxies with Symbol.toPrimitiveJavaScriptSymbolMIT
- JavaScript EventJavaScript
- JavaScript BackdoorJavaScript