getElementsByClassName在ie8及其以下的兼容性问题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>document.getElementsByClassName在ie8及其以下的兼容性问题</title>
</head>
<body>
<div id="info" class="longzhoufeng"></div>
<script type="text/javascript">
    //原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题
    function getClassNames(classStr, tagName) {
        if(document.getElementsByClassName) {
            return document.getElementsByClassName(classStr)
        } else {
            var nodes = document.getElementsByTagName(tagName), ret = [];
            for(i = 0; i < nodes.length; i++) {
                if(hasClass(nodes[i], classStr)) {
                    ret.push(nodes[i])
                }
            }
            return ret;
        }
    }

    function hasClass(tagStr, classStr) {
        var arr = tagStr.className.split(/\s+/); //这个正则表达式是因为class可以有多个,判断是否包含
        for(var i = 0; i < arr.length; i++) {
            if(arr[i] == classStr) {
                return true;
            }
        }
        return false;
    }

    var aaa = getClassNames('longzhoufeng', 'div');
    alert(aaa[0].id)
    alert(aaa[0].className)
    // console.log(aaa)
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/longzhoufeng/article/details/80689039