博客列表 >0117】JavaScript中的dom动态操作表格的练习,获取父元素/获取子元素/创造元素/修改节点内容

0117】JavaScript中的dom动态操作表格的练习,获取父元素/获取子元素/创造元素/修改节点内容

小包子的博客
小包子的博客原创
2019年01月31日 16:50:15972浏览

总结:

本次练习主要是掌握原生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>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议