当前位置: 首页 > 工具软件 > Tablecloth.js > 使用案例 >

js 关于table的操作

段哲圣
2023-12-01

html部分代码

<table id="tab" width="100%" border="1px">
        <tr>
            <td>1</td>
            <td>张三</td>
            <td>男</td>
            <td><a href="javscript:;">删除</a></td>
        </tr>
        <tr>
            <td>2</td>
            <td>小美</td>
            <td>女</td>
            <td><a href="javscript:;">删除</a></td>
        </tr>
    </table>

在平时如果我们要获取”小美“的值,也许会这么写:

var oTab = document.getElementById("tab");
alert(document.getElementsByTagName("td")[5].innerHTML)

通过getByTagName来获取 值,但这种方法不易于维护,前面的结构会影响到后面的代码,如果前面增加了一个td,就会影响到后面的取值

你还可以通过操作子节点来获取值,你也许会这么写:先取到table节点,然后取到table下面的第一个tr,然后再取到tr下面的第一个td,这么写看起来没什么问题,但浏览器会直接报错,因为Table的结构是包含thead(表格头部 只能有一个),tbody(表格正文 可以有多个),tfoot(表格尾部 只能有一个),如果代码里你没写tbody,浏览器会默认给你加上,因为只有一个tbody,所有浏览器就会报错,所以平时我们应该注意

alert(oTab.children[1].children[1].innerHTML);

table的结构我们可以写成这样

<table id="tab" width="100%" border="1px">
        <thead>
            <tr>
                <th>编号</th>
                <th>姓名</th>
                <th>性别</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>张三</td>
            <td>男</td>
            <td><a href="javscript:;">删除</a></td>
        </tr>
        <tr>
            <td>2</td>
            <td>小美</td>
            <td>女</td>
            <td><a href="javscript:;">删除</a></td>
        </tr>
        </tbody>
    </table>

如果我们想要获取到“小美”的值,就应该写成这样

alert(oTab.children[1].children[1].children[1].innerHTML)

但这么写代码看起来就不太直观,js专门提供了操作table的方法
tHead: 表格头部
tBodies: 表格正文
tFoot: 表格尾部
rows: 行
cells : 列

alert(oTab.tBodies[0].rows[1].cells[1].innerHTML)

这样写看起来就直观多了

 类似资料: