欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

IE不支持getElementsByClassName最終完美解決方案

 更新時(shí)間:2012年12月17日 16:21:02   作者:  
目前可以這么解決,判斷瀏覽器支不支持這個(gè)方法,如果支持就不管;如果不支持,就在document對(duì)象里加入getElementsByClassName這個(gè)方法,按興趣的朋友可以了解下
目前可以這么解決,判斷瀏覽器支不支持這個(gè)方法,如果支持就不管;如果不支持,就在document對(duì)象里加入getElementsByClassName這個(gè)方法,這樣的寫法有一個(gè)好處,即不管有沒有原生函數(shù)你都不用去修改代碼。

通常先使用getElementsByTagName("*")取出文檔中所有元素,然后進(jìn)行遍歷,使用正則表達(dá)式找出匹配的元素放入一個(gè)數(shù)組返回。由于IE5不支持document.getElementsByTagName("*"),要使用分支document.all以防錯(cuò)誤

下面的方法完美支持了document寫法

復(fù)制代碼 代碼如下:

if(!document.getElementsByClassName){
document.getElementsByClassName = function(className, element){
var children = (element || document).getElementsByTagName('*');
var elements = new Array();
for (var i=0; i<children.length; i++){
var child = children[i];
var classNames = child.className.split(' ');
for (var j=0; j<classNames.length; j++){
if (classNames[j] == className){
elements.push(child);
break;
}
}
}
return elements;
};
}

最終的方案為: 
復(fù)制代碼 代碼如下:

var getElementsByClassName = function (searchClass, node,tag) {
if(document.getElementsByClassName){
var nodes = (node || document).getElementsByClassName(searchClass),result = [];
for(var i=0 ;node = nodes[i++];){
if(tag !== "*" && node.tagName === tag.toUpperCase()){
result.push(node)
}else{
result.push(node)
}
}
return result
}else{
node = node || document;
tag = tag || "*";
var classes = searchClass.split(" "),
elements = (tag === "*" && node.all)? node.all : node.getElementsByTagName(tag),
patterns = [],
current,
match;
var i = classes.length;
while(--i >= 0){
patterns.push(new RegExp("(^|\s)" + classes[i] + "(\s|$)"));
}
var j = elements.length;
while(--j >= 0){
current = elements[j];
match = false;
for(var k=0, kl=patterns.length; k<kl; k++){
match = patterns[k].test(current.className);
if (!match) break;
}
if (match) result.push(current);
}
return result;
}
}

相關(guān)文章

  • javascript 數(shù)組的定義和數(shù)組的長度

    javascript 數(shù)組的定義和數(shù)組的長度

    本文主要介紹javascript 數(shù)組的定義和數(shù)組的長度,比較簡單,希望能給大家做一個(gè)參考。
    2016-06-06
  • JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長度計(jì)算函數(shù)

    JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長度計(jì)算函數(shù)

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的GBK、UTF8字符串實(shí)際長度計(jì)算函數(shù),需要的朋友可以參考下
    2014-08-08
  • js獲取height和width的方法說明

    js獲取height和width的方法說明

    js獲取height和width屬性的值在日常開發(fā)中很常見,于是本人搜集整理了一下,感興趣的朋友可以參考下
    2013-01-01
  • js中對(duì)象深拷貝方法總結(jié)

    js中對(duì)象深拷貝方法總結(jié)

    js深拷貝這個(gè)問題,在實(shí)際的工作和面試當(dāng)中也是經(jīng)常使用到的。
    還經(jīng)常有一些公司要求,原生手寫實(shí)現(xiàn),這篇文章主要介紹了js中對(duì)象深拷貝方法總結(jié),需要的朋友可以參考下
    2022-10-10
  • form表單序列化詳解(推薦)

    form表單序列化詳解(推薦)

    這篇文章主要介紹了form表單序列化操作,通過將表單中的鍵值序列化為可提交的字符串,并附上代碼實(shí)例詳細(xì)講解了運(yùn)行之后的結(jié)果,需要的朋友可以參考下
    2017-08-08
  • 薦書|您有一份JavaScript書單待簽收

    薦書|您有一份JavaScript書單待簽收

    &#8203;學(xué)習(xí)是一個(gè)持續(xù)不斷的過程,在互聯(lián)網(wǎng)技術(shù)里暢游的程序員們,對(duì)學(xué)習(xí)的渴望更是難以窮盡,下面這篇文章主要給大家分享了關(guān)于Javascript相關(guān)的書籍,對(duì)大家學(xué)習(xí)Javascript具有一定的參考學(xué)習(xí)價(jià)值,下面來一起看看吧。
    2017-07-07
  • 推薦10款擴(kuò)展Web表單的JS插件

    推薦10款擴(kuò)展Web表單的JS插件

    本篇文章給大家介紹了10款擴(kuò)展Web表單的javascript的插件,一起跟著小編來學(xué)習(xí)下吧。
    2017-12-12
  • 簡單介紹JavaScript中字符串創(chuàng)建的基本方法

    簡單介紹JavaScript中字符串創(chuàng)建的基本方法

    這篇文章主要介紹了簡單介紹JavaScript中字符串創(chuàng)建的基本方法,是JS入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-07-07
  • JavaScript學(xué)習(xí)筆記之JS對(duì)象

    JavaScript學(xué)習(xí)筆記之JS對(duì)象

    這篇文章向我們?cè)敿?xì)介紹了javascript中的對(duì)象,包括默認(rèn)對(duì)象、數(shù)組對(duì)象、字符串對(duì)象、自定義對(duì)象,并通過示例對(duì)這4中對(duì)象做了對(duì)比分析,推薦給大家。
    2015-01-01
  • 深入了解javascript中的prototype與繼承

    深入了解javascript中的prototype與繼承

    本篇文章,小編將和大家一起深入了解javascript中的prototype與繼承,有需要的朋友可以參考一下
    2013-04-04

最新評(píng)論