JS@DOM:向表格中动态添加行显示信息,做到滚动效果

最近在学习D3,很多时候都用到了表格,并且在js中动态地添加和删除表格,在这里总结一下js关于表格的操作:

首先要知道,js中没有提供关于列的操作,所以关于列的操作只能通过操作行来实现,比如获得列的数量,只能通过获得行的单元格数量来获得列数(这里也有缺陷,如果某个单元格设置了colspan属性,就会出错)。

table.rows.length//获得表格的行数

table.rows[0].cells.length//获得表格第一行的单元格的数量

table.insertRow(i)//插入第(i+1)行,行数(参数)从零开始

tr.insertCell(i)//插入第(i+1)个单元格,参数从零开始

还有一些不常用的方法,参见w3school提供的教程:HTML DOM Table对象

感谢showbo版主提供的简单实例:向表格中行显示信息,最多显示10行,超过10行则删除最上面的行(滚动显示信息的效果):

<input type="button" οnclick="addRow()" value="添加新行" /><br />
<table id="tb" border="1"></table>
<script>
    var total = 0;//测试用的,实际应用删除这个变量的引用
    function addRow() {
        var tb = document.getElementById('tb'), l = tb.rows.length;
        var tr = tb.insertRow(l);
        var td = tr.insertCell(0);
        td.innerHTML = 'xxxxxx'+total;//显示的内容,如果有多个单元格继续tr.insertCell(1),注意参数是从0开始的
        if (l >= 10) { //超过10行,删除第一行
            tr = tb.rows[0];
            tr.parentNode.removeChild(tr);
        }
        total++;
    }
</script>


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用JavaScript的定时器和DOM操作来实现表格数据的自动按时滚动效果。 1. 首先,需要获取到需要滚动表格元素,可以通过document.getElementById()或document.querySelector()等方法获取到。 2. 然后,需要获取到表格的数据,并将其以数组的形式保存下来。 3. 接着,可以使用定时器setInterval(),每隔一定时间(比如1000毫秒)将数组的数据向上滚动一行,并更新表格的内容。 4. 在滚动时,需要注意边界问题,当滚动到最后一行时,需要将滚动回到第一行。 下面是一个示例代码: HTML: ``` <table id="scroll-table"> <thead> <tr> <th>Header 1</th> <th>Header 2</th> <th>Header 3</th> </tr> </thead> <tbody> <tr> <td>Data 1-1</td> <td>Data 1-2</td> <td>Data 1-3</td> </tr> <tr> <td>Data 2-1</td> <td>Data 2-2</td> <td>Data 2-3</td> </tr> <tr> <td>Data 3-1</td> <td>Data 3-2</td> <td>Data 3-3</td> </tr> <tr> <td>Data 4-1</td> <td>Data 4-2</td> <td>Data 4-3</td> </tr> </tbody> </table> ``` JavaScript: ``` var table = document.getElementById('scroll-table'); var data = Array.from(table.getElementsByTagName('td')); var row = table.getElementsByTagName('tr')[0].cloneNode(true); var currentIndex = 0; var intervalId = setInterval(scrollTable, 1000); function scrollTable() { currentIndex++; if (currentIndex >= data.length) { currentIndex = 0; } var nextRow = row.cloneNode(true); nextRow.innerHTML = data[currentIndex].parentNode.innerHTML; table.tBodies[0].removeChild(table.tBodies[0].firstChild); table.tBodies[0].appendChild(nextRow); } ``` 这段代码会每隔1秒钟将表格数据向上滚动一行,并且当滚动到最后一行时会自动回到第一行。可以根据具体需求调整滚动时间和滚动数。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值