JavaScript操作table表格:遍历、列读取、删除行、更新列等动态管理

 更新时间:2025年05月17日 09:35:51   作者:明明#030  
本文详细介绍使用JavaScript操作HTML表格的各种技巧,包括遍历、指定列读取、删除行、根据按钮更新特定列内容,以及购物车功能实现,通过实例展示如何在网页上动态管理和更新表格数据

本文详细介绍使用JavaScript操作HTML表格的各种技巧,包括遍历、指定列读取、删除行、根据按钮更新特定列内容,以及购物车功能实现,通过实例展示如何在网页上动态管理和更新表格数据

1.遍历整个table

function showtable(tableId) {
      //获取table序号
      var tab = document.getElementById(tableId);
      //获取行数
      var rows = tab.rows;
      //遍历行
      for(var i=1;i<rows.length;i++){     
   //遍历表格列
       for(var j=0;j<rows[i].cells.length;j++)
           alert("第"+(i+1)+"行,第"+(j+1)+"列的值是:"+rows[i].cells[j].innerHTML);   
              
     }
    }

2.遍历指定的列

无论是行、列。下标都是从0开始。

function showRow(tableId){
     var tab = document.getElementById(tableId);
       
    for (var i = 1; i < tab.rows.length; i++) {
        //指定遍历整个表的第3列
        alert(tab.rows[i].cells[4].innerHTML);
      }
}

3.删除table中所有的行,但不包括表头

function deleteCurrentRow(tableId) {
      var tb = document.getElementById(tableId);
      var rowNum = tb.rows.length;
      for (i = 1; i < rowNum; i++) {
        tb.deleteRow(i);
        rowNum = rowNum - 1;
        i = i - 1;
      }
    }

将循环中的i改为从0开始,则删除整个表的内容

4.根据this属性获取当前行

描述:比如每行都有一个button,点中button后更新特定列的内容。

实际例子:在菜单里,点击加号或者减号更改选中的菜品的数量、价格小计

效果:

代码实现:

//在按钮的调用方法 onclick="add(this,'MenuTable')"
  function add(r,tabId){
      var tab=document.getElementById(tabId);  
       //根据this获取行的下标
      var i=r.parentNode.parentNode.rowIndex;
       //获取这一行中数量的列,并将数量加一
      var num=tab.rows[i].cells[4].innerText;
      num=parseInt(num)+1;
      //获取这行中单价的列,并算出结果更新小计的列
      var price=tab.rows[i].cells[3].innerText;
      var total=parseInt(num) * parseInt(price);

      tab.rows[i].cells[4].innerText=parseInt(num);
      tab.rows[i].cells[6].innerText=parseInt(total);

    }
    function reduce(r,tabId){
      var tab=document.getElementById(tabId);  
     // var tabRows=tab.rows;
      var i=r.parentNode.parentNode.rowIndex;
      var num=tab.rows[i].cells[4].innerText;
      if(parseInt(num)>0){
        num=parseInt(num)-1;
      }
  
      var price=tab.rows[i].cells[3].innerText;
      var total=parseInt(num) * parseInt(price);

      tab.rows[i].cells[4].innerText=parseInt(num);
      tab.rows[i].cells[6].innerText=parseInt(total);

    }

5.购物车的制作

描述:将选中的菜品添加到购物车,像是小票的形式呈现关键信息

逻辑:每次点开购物车按钮时(1)清空原有的购物车内容(2)插入本次选择的菜品

效果:

代码实现:

1.购物车前端的窗体制作(bootstrap)

  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
   <div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
      <h4 class="modal-title" id="myModalLabel">订单</h4> 
     </div> 
     <div class="modal-body"> 
      <div class="table-responsive"> 
       <table class="table table-striped" id="shoppingCart"> 
        <thead> 
         <tr> 
          <th>图片</th> 
          <th>菜名</th> 
          <th>数量</th> 
          <th>小计</th> 
         </tr> 
        </thead> 
        <tbody></tbody> 
       </table> 
       <h3 class="col-xs-9 text-right" id="allprice"></h3> 
       <div class="col-lg-6"> 
        <input class="form-control" required="required" placeholder="请输入收货人电话" name="phone" /> 
       </div> 
       <div class="col-lg-6"> 
        <div class="form-group"> 
         <select class="form-control" required="required" id="place" name="place">             
        </select> 
        </div> 
       </div> 
      </div> 
     </div> 
     <div class="modal-footer"> 
      <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button> 
      <button type="submit" class="btn btn-primary">下单</button> 
     </div> 
    </div> 
    <!-- /.modal-content --> 

2.更新购物车窗体信息:

 function createShoppingCart(tableId, shoppingCart) {
       //获取大的窗体,即菜单。以及小的窗体,即购物车
      var table = document.getElementById(tableId);
      var cart = document.getElementById(shoppingCart);

      var allprice = 0;
      for (var i = 1; i < table.rows.length; i++) {
        //如果在菜单里,某个菜品的小计大于零。也就是该菜品被选中了
        if (parseInt(table.rows[i].cells[6].innerHTML) > 0) {
          //alert(num);
           //在购物车中插入一行
          var tr = cart.insertRow(1);
            //将菜单表里的第0、2、4、6列赋予给购物车的0、1、2、3列
          tr.insertCell(0).innerHTML = table.rows[i].cells[0].innerHTML;
          tr.insertCell(1).innerHTML =  table.rows[i].cells[2].innerHTML;
          tr.insertCell(2).innerHTML = table.rows[i].cells[4].innerHTML;
          tr.insertCell(3).innerHTML = table.rows[i].cells[6].innerHTML;
            //计算总价并填写在购物车里
          allprice = allprice + parseInt(table.rows[i].cells[6].innerHTML);
        }
      }
      document.getElementById("allprice").innerHTML = "总计:" + allprice;

    }

3.前端调用部分:

onclick="deleteCurrentRow('shoppingCart');createShoppingCart('MenuTable','shoppingCart')"

6.总结

到此这篇关于JavaScript操作HTML表格:遍历、列读取、删除行、更新列等table的动态管理的文章就介绍到这了,更多相关JavaScript操作table:遍历、列读取、删除行、更新列等内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现图片压缩功能

    微信小程序实现图片压缩功能

    这篇文章主要为大家详细介绍了微信小程序实现图片压缩功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • js不同客户端显示不同广告(pc端+移动端+微信端)

    js不同客户端显示不同广告(pc端+移动端+微信端)

    这篇文章主要介绍了js不同客户端显示不同广告(pc端+移动端+微信端),比较适合自适应网站的广告,需要的朋友可以参考下
    2023-02-02
  • JavaScrip简单数据类型隐式转换的实现

    JavaScrip简单数据类型隐式转换的实现

    本文主要介绍了JavaScrip简单数据类型隐式转换的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • JavaScript控制网页层收起和展开效果的方法

    JavaScript控制网页层收起和展开效果的方法

    这篇文章主要介绍了JavaScript控制网页层收起和展开效果的方法,涉及javascript操作网页元素动态效果的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析

    《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析

    这篇文章主要介绍了《javascript设计模式》学习笔记Javascript面向对象程序设计对象成员的定义,结合实例形式分析了《javascript设计模式》中JavaScript面向对象程序设计的原理、定义、用法及操作注意事项,需要的朋友可以参考下
    2020-04-04
  • 一文总结JS中逻辑运算符的特点

    一文总结JS中逻辑运算符的特点

    在JavaScript的众多运算符里,提供了三个逻辑运算符&&、||和!,下面这篇文章主要给大家介绍了关于JS中逻辑运算符的特点,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • JavaScript学习小结(7)之JS RegExp

    JavaScript学习小结(7)之JS RegExp

    在js中,正则表达式是由一个RegExp对象表示的,RegExp 是正则表达式的缩写。RegExp简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。可以使用一个RegExp()构造函数来创建RegExp对象,也可以使用直接量语法
    2015-11-11
  • Js 中debug方式

    Js 中debug方式

    以前在VS2005中以为要断点debug js 要 用 debug模式并且在相应的js中设置断点 才可以debug,今天学了一招,可以在要调试的js前加一句js命令debugger;
    2010-02-02
  • JavaScript驾驭网页-CSS与DOM

    JavaScript驾驭网页-CSS与DOM

    DOM是种符合万维网标准的HTML操纵方式,它能比innerHTML特性达成更多操控功能。这篇文章主要介绍了JavaScript驾驭网页-CSS与DOM的相关资料,需要的朋友可以参考下
    2016-03-03
  • JS实现点击图片在当前页面放大并可关闭的漂亮效果

    JS实现点击图片在当前页面放大并可关闭的漂亮效果

    点击图片在当前页面放大的漂亮效果实现方法有很多,在本文将为大家介绍下使用Lightbox JS是如何实现的,感兴趣的朋友不要错过
    2013-10-10

最新评论