JS獲取html元素的標(biāo)記名實(shí)現(xiàn)方法
常見的獲取元素的方法有3種,分別是通過元素ID、通過標(biāo)簽名字和通過類名字來獲取。
getElementById
DOM提供了一個名為getElementById的方法,這個方法將返回一個與之對應(yīng)id屬性的節(jié)點(diǎn)對象。使用的時候請注意區(qū)分大小寫。
它是document對象特有的函數(shù),只能通過其來調(diào)用該方法。其使用的方法如下:
document.getElementById('demo') //demo是元素對應(yīng)的ID
該方法兼容主流瀏覽器,甚至包括IE6+,可以大膽使用。
getElementsByTagName
該方法返回一個對象數(shù)組(準(zhǔn)確的說是HTMLCollection集合,它不是真正意義上的數(shù)組),每個對象分別對應(yīng)著文檔里有著給定標(biāo)簽的一個元素。類似于getElementById,同樣,該方法只提供一個參數(shù),它的參數(shù)是指定標(biāo)簽的名字,示例代碼如下:
document.getElementsByTagname('li') //li是標(biāo)簽的名字
需要注意的是,該方法除了能被document對象調(diào)用之外,還可以被普通的元素調(diào)用。示例如下:
原生DOM的話首先獲取標(biāo)簽對象,id或者name或其他
例:
<p id="targetp" >2333333</p> <script> var element = document.getElementById("targetp"); var tagname = element.tagName; alert(tagname); </script>
jQuery獲取
$("#content-header").get(0).tagName
如果已經(jīng)獲取到對象可以直接獲取標(biāo)記名
<p onclick="alert('您單擊的是:'+this.tagName);">中華人民共和國</p>
var demo = document.getElementById('demo'); var lis = demo.getElementsByTagname('li');
同樣,該方法兼容主流瀏覽器,甚至包括IE6+,可以大膽使用。
getElementsByClassName
除了通過指定標(biāo)簽獲取元素外,DOM還提供了getElementsByClassName方法來獲取指定class名的元素。不過由于該方法比較新,較老的瀏覽器還不支持,比如IE6。不過我們可以通過hack方式來彌補(bǔ)老瀏覽器缺陷。該方法調(diào)用的方式如下所示:
document.getElementsByClassName('demo') //demo為元素指定的class名
和getElementsByTagname一樣, 該方法除了能被document對象調(diào)用之外,還可以被普通的元素調(diào)用。
對于比較老的瀏覽器,比如IE6、7我們可以通過下面的hack方式來實(shí)現(xiàn):
function getElementsByClassName(node,classname){ if(node.getElementsByClassName) { return node.getElementsByClassName(classname); }else { var results = []; var elems = node.getElementsByTagName("*"); for(var i = 0; i < elems.length; i++){ if(elems[i].className.indexOf(classname) != -1){ results[results.length] = elems[i]; } } return results; } }
拓展
如果你不僅僅滿足上面那些元素選擇的方法,想和JQuery一樣,能通過選擇器來獲取元素,實(shí)現(xiàn)的方法和上面的getElementsByClassName差不多,如果有興趣自己可以實(shí)現(xiàn)一套選擇器。不過我覺得有上面的三個方法再結(jié)合事件冒泡,已經(jīng)夠用了,畢竟這三種性能上算是優(yōu)秀的。
以上就是小編為大家?guī)淼腏S獲取html元素的標(biāo)記名實(shí)現(xiàn)方法全部內(nèi)容了,希望大家多多支持腳本之家~
- JavaScript動態(tài)改變HTML頁面元素例如添加或刪除
- Javascript createElement和innerHTML增加頁面元素的性能對比
- javascript 控制 html元素 顯示/隱藏實(shí)現(xiàn)代碼
- js實(shí)現(xiàn)創(chuàng)建刪除html元素小結(jié)
- JavaScript中獲取HTML元素值的三種方法
- JavaScript改變HTML元素的樣式改變CSS及元素屬性
- Js 獲取HTML DOM節(jié)點(diǎn)元素的方法小結(jié)
- js 動態(tài)創(chuàng)建 html元素
- JS控制HTML元素的顯示和隱藏的兩種方法
- js獲取Html元素的實(shí)際寬度高度的方法
- JS實(shí)現(xiàn)加載時鎖定HTML頁面元素的方法
相關(guān)文章
JavaScript學(xué)習(xí)筆記之獲取當(dāng)前目錄的實(shí)現(xiàn)代碼
用來獲取當(dāng)前目錄的js代碼,需要的朋友可以參考下,主要利用了split函數(shù)。2010-12-12基于BootStrap與jQuery.validate實(shí)現(xiàn)表單提交校驗(yàn)功能
學(xué)習(xí)前臺后臺最開始接觸的業(yè)務(wù)都是用戶注冊和登錄,下面通過本文給大家介紹BootStrap與jQuery.validate實(shí)現(xiàn)表單提交校驗(yàn)功能,感興趣的朋友一起學(xué)習(xí)吧2016-12-12詳解GoJs節(jié)點(diǎn)的選中高亮實(shí)現(xiàn)示例
這篇文章主要為大家介紹了GoJs節(jié)點(diǎn)的選中高亮實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05JavaScript實(shí)現(xiàn)多維數(shù)組的方法
這篇文章主要介紹了JavaScript實(shí)現(xiàn)多維數(shù)組的方法,有需要的朋友可以參考一下2013-11-11javascript之典型高階函數(shù)應(yīng)用介紹二
在前一篇文章javascript之典型高階函數(shù)中主要實(shí)現(xiàn)了幾個典型的functional函數(shù),文章最后也提出了疑問,為啥那樣的實(shí)現(xiàn)與F#之類的函數(shù)式語言“不太一樣”呢?今天來試試更“函數(shù)式”的實(shí)現(xiàn)2013-01-01純javaScript、jQuery實(shí)現(xiàn)個性化圖片輪播【推薦】
本文主要介紹了純javaScript、jQuery實(shí)現(xiàn)個性化圖片輪播的方法,并在文章結(jié)尾附上源碼下載。具有很好的參考價值,下面跟著小編一起來看下吧2017-01-01