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>
  • 相关阅读:
    C数据结构2.1-线性表抽象数据类型
    转载的内容
    转载springboot的内容
    jQuery中的load()Failed to load resource: the server responded with a status of 404 Maven框架遇到的问题
    java代码发送邮箱源代码
    Error:(1, 10) java: 需要class, interface或enum的错误
    性能测试系列五 压测常见的关注指标以及监控分析工具
    面试官常考的Selenium Web自动化面试题总结(上篇)
    性能测试系列四 压测指标的来源
    性能测试系列三 压测方式简单总结
  • 原文地址:https://www.cnblogs.com/fumj/p/2551538.html
Copyright © 2011-2022 走看看