zoukankan      html  css  js  c++  java
  • js 自定义getClass函数实现获取dom的class 兼容火狐ie

    <script type="text/javascript">
            function getClass(tagName, className) {  //第一个参数 表示是className是所属那个dom标签下,这样为了提高检索效率
                //如果是火狐择调用火狐的getElementsByClassName 内置函数
                if (document.getElementsByClassName) {
                    return document.getElementsByClassName(className)
                }
                else {
                    var nodes = document.getElementsByTagName(tagName),
                    ret = []
                    for (i = 0; i < nodes.length; i++) {
                        if (hasClass(nodes[i], className)) { ret.push(nodes[i]) }
                    }
                    return ret;
                }
            }
            function hasClass(node, className) {
                var names = node.className.split(/\s+/) //这个正则表达式是因为class可以有多个,判断是否包含
                for (i = 0; i < names.length; i++) {
                    if (names[i] == className) return true;
                }
                return false;
            }
    </script>

    使用例子:

    View Code
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript">
            function getClass(tagName, className) {  //第一个参数 表示是className是所属那个dom标签下,这样为了提高检索效率
                //如果是火狐择调用火狐的getElementsByClassName 内置函数
                if (document.getElementsByClassName) {
                    return document.getElementsByClassName(className)
                }
                else {
                    var nodes = document.getElementsByTagName(tagName),
                    ret = []
                    for (i = 0; i < nodes.length; i++) {
                        if (hasClass(nodes[i], className)) { ret.push(nodes[i]) }
                    }
                    return ret;
                }
            }
            function hasClass(node, className) {
                var names = node.className.split(/\s+/) //这个正则表达式是因为class可以有多个,判断是否包含
                for (i = 0; i < names.length; i++) {
                    if (names[i] == className) return true;
                }
                return false;
            }
            function showMsg() {
                var tag = getClass('div', 'test');
                for (var i = 0; i < tag.length; i++) {
                    alert(tag[i].innerText);
                }
            }
        </script>
    </head>
    <body>
        <div class="test">
            hello!
        </div>
        <input type="button" value="show" onclick="showMsg()" />
    </body>
    </html>
  • 相关阅读:
    Google 嘘! 嘘!
    zabbix fast
    zabbix
    kernel update
    列表推导
    Ddos 反射性防护 simple
    file cycle
    Scala
    Hadoop
    数据库
  • 原文地址:https://www.cnblogs.com/fumj/p/2551538.html
Copyright © 2011-2022 走看看