使用原生JavaScript模擬getElementByClassName .


最近在工作中,由於有一個插件必須使用jquery-pack.js,而這個包又是非常古老的jquery,所以又的函數是無法使用的,例如$()選擇器以及parent()都取不到標簽的內容。

所以沒辦法,只能用原生的JavaScript了,為了實現這個功能,我得通過HTML標簽的Class來獲得標簽的DOM結構。

在JavaScript 內建的核心中,document對象及element對象總共可以通過三個方式來獲取其下的元素,分別是:getElementById(‘id’) 、getElementsByName(‘name’) 、getElementsByTagName(‘tag’)  。

可是在設計網頁時,最常常需要使用到的class卻沒有相對應的方法可以去獲取className相同的元素。

不過我們可以自己寫一個,代碼以很簡單:

function getElementsByClassName(tagName,className) {
        var tag = document.getElementsByTagName(tagName);
        var tagAll = [];
        for(var i = 0 ; i<tag.length ; i++){
            if(tag[i].className.indexOf(className) != -1){
                tagAll[tagAll.length] = tag[i];
            }
        }

        return tagAll;

    }

 


原理就是通過獲取指定的標簽,使用getElementsByTagName來獲取標簽的內容,然后根據標簽的className跟傳進來的參數進行對比,如果相等就放入數組中最后返回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM