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>
  • 相关阅读:
    SpringBoot系列之缓存使用教程
    Dubbo系列之常用配置用法简介
    SpringBoot系列之集成Dubbo的方式
    JavaScript系列之回调函数callback
    JavaScript系列之事件冒泡机制简介
    Oracle基础之保留字和关键字
    Oracle调优之no_unnest和unnest用法简介
    InnoSetup 以命令行自动编译打包
    InnoSetup 脚本打包及管理员权限设置
    C# 获取系统当前IE版本号
  • 原文地址:https://www.cnblogs.com/fumj/p/2551538.html
Copyright © 2011-2022 走看看