7,js操作table.tBodies,tHead,tFoot,rows.cells

js操作table,获取tbody:tBodies, 获取thead:tHead; 获取tfoot:tFoot; 获取tr:rows; 获取td:cells;

鼠标移入变色:

<table>
    <thead>
        <td>序号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>操作</td>
    </thead>
    <tbody>
        <tr>
           <td>1</td>
           <td>刘一</td>
           <td>22</td>
           <td></td>
        </tr>
        <tr>
           <td>2</td>
           <td>浩二</td>
           <td>23</td>
           <td></td>
        </tr>
        <tr>
           <td>3</td>
           <td>张三</td>
           <td>25</td>
           <td></td>
        </tr>
        <tr>
           <td>4</td>
           <td>王伟</td>
           <td>22</td>
           <td></td>
        </tr>
        <tr>
           <td>5</td>
           <td>王三</td>
           <td>22</td>
           <td></td>
        </tr>
    </tbody>
    
</table>    <script>
    window.onload=function(){
        var oTab=document.getElementById('tab1');
        var aTr=oTab.tBodies[0].rows;
        //隔行变色;
var iBg='';
    for(var i=0;i<aTr.length;i++){ if(i%2=0){ aTr[i].style.background=' '; }else{ aTr[i].style.background='#ccc'; }
        
       //鼠标移动变色;
       aTr[i].onmouseover=function(){
          iBg=this.style.background;//保留原有的背景色;
          aTr[i].style.background='green';
}
       aTr[i]。onmouseout=function(){
         aTr[i].style.background=iBg;
       } }
       }
</script>

 

转载于:https://www.cnblogs.com/maoduoduo/p/3144839.html

可以使用以下代码来优化上述代码,实现通过点击表格的日期表头来升序或降序排列表格行: ```javascript var table = document.getElementById("showTable"); var dateHeader = table.querySelector("#dateHeader"); var rows = Array.from(table.tBodies[0].rows); // 将日期字符串转换为Date对象并将其存储在数组中 var dates = rows.map(function(row) { var dateStr = row.cells[2].textContent; var dateParts = dateStr.split("-"); return new Date(dateParts[0], dateParts[1] - 1, dateParts[2]); }); // 添加事件监听器以在单击表头时对表格进行排序 dateHeader.addEventListener("click", function () { // 判断当前排序顺序并按相反的顺序对行进行排序 if (dateHeader.getAttribute("data-order") === "desc") { rows.sort(function (a, b) { return dates[rows.indexOf(a)] - dates[rows.indexOf(b)]; }); dateHeader.setAttribute("data-order", "asc"); } else { rows.sort(function (a, b) { return dates[rows.indexOf(b)] - dates[rows.indexOf(a)]; }); dateHeader.setAttribute("data-order", "desc"); } // 使用排序后的行更新表格 rows.forEach(function(row) { table.tBodies[0].appendChild(row); }); }); ``` 这段代码的优化点包括: - 使用 `Array.from()` 方法将表格的行转换为数组,而不是使用 `for` 循环遍历。 - 使用 `map()` 方法将日期字符串转换为日期对象,并将结果存储在数组中。 - 在排序函数中直接使用 `rows.indexOf()` 方法获取行的索引,而不是使用循环变量 `i`。 - 使用 `forEach()` 方法将排序后的行添加回表格中,而不是使用 `for` 循环遍历。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值