table的行交替改变样式 CSS3 和 js两种实现

/*我刚看到一个方案 就是为元素更新className属性 通过更新 来改变外部的呈现 直接element.className = value; 实现的不是追加 是更新 看下面的这个函数

      function addClass(element,value) {
            if(!element.className) {
                element.className = value;
            } else {
                newClassName = element.className;
                newClassName += " "; //新追加的class属性 要加空格
                newClassName += value;
                element.className = newClassName;
            }
        }

}*/

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>css test</title>
        <style type="text/css">
        table {
            margin: auto;
            border: 1px solid black;
        }
        td {
            width: 20px;
            padding: 5px;
        }
        tr:nth-child(odd) {
            background-color: red;  //table的奇数行背景色是红色
        }
        tr:nth-child(even) {  //table的偶数行背景色为蓝色
            background-color: blue;
        }
        </style>
    </head>
    <body>
        <table>
            <tr>
                <td>姓名</td>
                <td>noodles</td>
            </tr>
            <tr>
                <td>年龄</td>
                <td>28</td>
            </tr>
            <tr>
                <td>体重</td>
                <td>88</td>
            </tr>
            <tr>
                <td>爱好</td>
                <td>电影</td>
            </tr>
        </table>
    </body>
</html>

 

js 实现

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>css test</title>
        <style type="text/css">
        table {
            margin: auto;
            border: 1px solid black;
        }
        td {
            width: 20px;
            padding: 5px;
        }
        
        </style>
    </head>
    <body>
        <table>
            <tr>
                <td>姓名</td>
                <td>noodles</td>
            </tr>
            <tr>
                <td>年龄</td>
                <td>28</td>
            </tr>
            <tr>
                <td>体重</td>
                <td>88</td>
            </tr>
            <tr>
                <td>爱好</td>
                <td>电影</td>
            </tr>
        </table>
    <script type="text/javascript">
        function tableStyle() {  //这个函数实现了为每个页面中的table元素实现的tr的css隔行设置
            if(!document.getElementsByTagName) {
                return false;
            }

            var tables = document.getElementsByTagName("table");
            var odd,rows;
            for(var i = 0;i < tables.length;i++) {
                odd = false;
                rows = tables[i].getElementsByTagName("tr");
                for(var j = 0;j <rows.length;j++) {
                    if(odd === true ) { //用=== 做判断 不会有转换
                        rows[j].style.backgroundColor = "red"; //CSS属性是 background-color 在js中体现是 backgroundColor 驼峰命名 因为js 会将background-color中的- 识别为减 后面的color 认为是一个变量
                        odd = false;
                    } else {
                        rows[j].style.backgroundColor = "blue";
                        odd = true;
                    }
                }
            }
        }

        function addLoadEvent(func) {//这个函数是功能是可以让一些函数在页面加载完成后运行
            var oldonload = window.onload;
            if(typeof window.onload != ‘function‘) {
                window.onload = func;
            } else {
                oldonload();
                func();
            }
        }
        addLoadEvent(tableStyle);

    </script>
    </body>
</html>

table的行交替改变样式 CSS3 和 js两种实现,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。