最近在工作中,由於有一個插件必須使用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跟傳進來的參數進行對比,如果相等就放入數組中最后返回。