总结:
本次练习主要是掌握原生JS常见的DOM选择方法;
getElementById 通过ID选择元素;
children[2],选择子元素,返回数组,需要加上数组下标选择具体的元素;
tBodies[0],选择表格的tbody,返回也是数组,需要加下标;
document.createElement('tr'),创建一个新的html元素;
tr3.innerHTML,为html元素添加内容,可以包含html代码,例如'<td> html 内容 </td>';
data = [
{'id':1,'name':'牛奶','num':3,'price':50},
{'id':2,'name':'苹果','num':10,'price':80},
];
动态内容需要把对象用数组包裹起来,因为对象为无序数列,不能通过数组下标循环
+=,把输出的内容都累加到一个变量中
思考:
在DOM中,lastElementChild(返回元素element) 和 lastchild(返回#text node节点) 的区别是什么?Element和Node区别是什么?
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>0117-动态表格</title> <style> *{margin: 0;padding: 0;} table { border: 1px solid #000; border-spacing:0; border-collapse:collapse; width: 600px; margin: 0 auto; } table td{ border: 1px solid #000; padding: 5px; text-align: center; width: 25%; } table caption { font-weight: bold; font-size: 20px; padding: 20px 0; } table thead { background-color:cadetblue; font-weight: bold; color: #000; text-align: center; } </style> </head> <body> <!-- 静态表格 --> <table class="cart-1" id="cart-1" > <caption> 购物车-01 </caption> <thead> <tr> <td>编号</td> <td>品名</td> <td>数量</td> <td>单价</td> </tr> </thead> <tbody> <tr> <td>1</td> <td>手机</td> <td>1</td> <td>3000</td> </tr> <tr> <td>2</td> <td>电脑</td> <td>1</td> <td>5000</td> </tr> </tbody> </table> <!-- 动态购物车 --> <table class="cart-2" id="cart-2"> <caption> 购物车-02 </caption> <thead> <tr> <td>编号</td> <td>品名</td> <td>数量</td> <td>单价</td> </tr> </thead> <tbody> </tbody> </table> <script> // 通过选择器将表格最后一行内容修改 let table1 = document.getElementById('cart-1'); let tr1 = table1.children[2].children[0]; let copy = tr1.innerHTML; let tr3 = document.createElement('tr'); tr3.innerHTML = copy; table1.tBodies[0].appendChild(tr3); tr3.children[0].innerHTML = 3; tr3.lastElementChild.innerHTML = 7000; // 动态购物车数据 let data = [ {'id':1,'name':'牛奶','num':3,'price':50}, {'id':2,'name':'苹果','num':10,'price':80}, {'id':3,'name':'衣服','num':2,'price':600} ]; let table2 = document.getElementById('cart-2'); let tbody = table2.tBodies[0]; // 默认是一个数组必须用[0]来获取第一个元素 data.forEach(function(value){ let tr = document.createElement('tr'); tr.innerHTML = '<td>'+ value.id +'</td>'; tr.innerHTML += '<td>'+ value.name +'</td>'; tr.innerHTML += '<td>'+ value.num +'</td>'; tr.innerHTML += '<td>'+ value.price +'</td>'; tbody.appendChild(tr); }); </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例