由浅入深JavaScript8基础-Dom表格基础

DOM基础——DOM表格基础
JS提供了一套快速访问表格的方法。但是没有这些方法也能够操作表格元素。

当然会变得很麻烦。

表格元素获取

    tBodies, 表格主体 == tbody
    tHead, 表头 == thead
    tFoot, 表尾 == tfoot
    rows, 行 rows[行数] == tr
    cells 列  cells[列数] == td
表格结构
            <table id='t1' >
                <thead>
                    <td>ID</td>
                    <td>姓名</td>
                    <td>年龄</td>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>js</td>
                        <td>18</td>
                    </tr>
                </tbody>
                <tfoot>
                    <td>ID</td>
                    <td>姓名</td>
                    <td>年龄</td>
                </tfoot>
            </table>

    一个表格可以有多个tbody但只能有一个thead和一个tfoot。
    对于上述例子我们想要获取tbody中第二列文本内容js有什么办法呢?
eg:        <script type="text/javascript">
            window.onload = function(){
                var otab = document.getElementById('t1');
                var name = otab.getElementsByTagName('tbody')[0]
                .getElementsByTagName('tr')[0]
                .getElementsByTagName('td')[1];
                var name2 = otab.tBodies[0].rows[0].cells[1];

                alert(name.innerHTML);
                alert(name2.innerHTML)
            }
        </script>
    这个例子使用了两种方式获得文本js,第一种是使用前文将的常规的获取方法,
    第二种使用JS提供的快速访问表格的方法。可见代码量相差之大。
建议访问表格就是用表格方法,简便不容易出错。

eg:表格遍历
            <script type="text/javascript">
            window.onload = function(){
                var otab = document.getElementById('t1');
                for(var i= 0;i<otab.tBodies[0].rows.length;i++){
                    var name = otab.tBodies[0].rows[i].cells[1];
                    console.log(name.innerHTML);
                }
            }
        </script>
    </head>
    <body>
            <table id='t1' >
                <thead>
                    <td>ID</td>
                    <td>姓名</td>
                    <td>年龄</td>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>js</td>
                        <td>18</td>
                    </tr>
                    <tr>
                        <td>2</td>
                        <td>Jquery</td>
                        <td>20</td>    
                    </tr>
                    <tr>
                        <td>3</td>
                        <td>html</td>
                        <td>22</td>
                    </tr>
                </tbody>
            </table>
    </body>
    
eg:隔行变色+选中变色
            <style>
            table, th, td
              {
              border: 1px solid red;
              }
        </style>
        <script type="text/javascript">
            window.onload = function(){
                var otab = document.getElementById('t1');
                var oldcolor = '';
                for(var i= 0;i<otab.tBodies[0].rows.length;i++){
                    otab.tBodies[0].rows[i].onmouseover = function(){
                        oldcolor = this.style.background;
                        this.style.background = 'red';
                    }
                    otab.tBodies[0].rows[i].onmouseout = function(){
                        this.style.background = oldcolor;
                    }
                    if(i%2==0){
                        otab.tBodies[0].rows[i].style.background='gray';
                    }else{
                        otab.tBodies[0].rows[i].style.background='blue';
                    }
                }
            }
        </script>
    </head>
    <body>
            <table id='t1' >
                <thead>
                    <td>ID</td>
                    <td>姓名</td>
                    <td>年龄</td>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>js</td>
                        <td>18</td>
                    </tr>
                    <tr>
                        <td>2</td>
                        <td>Jquery</td>
                        <td>20</td>    
                    </tr>
                    <tr>
                        <td>3</td>
                        <td>html</td>
                        <td>22</td>
                    </tr>
                </tbody>
            </table>
    </body>
    
    
总结:DOM操作比较繁琐,只能依靠大量练习,学好DOM是学好JavaScript的关键。


——总结——

限于文章篇幅原因,这里仅仅介绍冰山一角。由于笔者的水平有限,编写时间也很仓促,
文中难免会出现一些错误或者不准确的地方,不妥之处恳请读者批评指正
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值