JavaScript操作table表格:遍历、列读取、删除行、更新列等动态管理
作者:明明#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">×</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:遍历、列读取、删除行、更新列等内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!