Blogger Information
Blog 61
fans 0
comment 0
visits 53950
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
使用JS动态一张表格,数据用数组进行模拟—2019年1月17日
笑颜常开的博客
Original
748 people have browsed it

    本节知识点主要是学习表格的JS操作,涉及到的具体知识点有children子节点的寻找、table对象定义的一些属性(tHead、tBodies、tFoot、rows和cells)。

示例代码如下:

实例

<!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>js操作表格的基本技巧</title>
  <style>
    table,
    td,
    th {
      border: 1px solid #666;
    }

    table {
      width: 500px;
      border-collapse: collapse;
      text-align: center;
    }

    table caption {
      font-size: 1.2rem;
      margin-bottom: 15px;
    }

    thead tr:nth-of-type(1) {
      background-color: lightblue;
    }
  </style>
</head>

<body>

  <table id="cart1">
    <caption>购物车1</caption>
    <!-- 注: 浏览器会自动给以下内容添加一个tbody容器 -->
    <!-- 为防止作用js获取元素出错,我们手工添加上这个tbody -->
    <!-- 将表头手工加上thead,否则会被添加二个tbody,因为table允许使用多个tbody -->
    <thead>
      <tr>
        <th>编号</th>
        <th>品名</th>
        <th>数量</th>
        <th>单价</th>
      </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>
      <tr>
        <td>3</td>
        <td>手机</td>
        <td>1</td>
        <td>3000</td>
      </tr>
    </tbody>
  </table>

  <hr>

  <table id="cart2">
    <caption>购物车2</caption>
    <thead>
      <tr>
        <th>编号</th>
        <th>品名</th>
        <th>数量</th>
        <th>单价</th>
      </tr>
    </thead>
    <tbody></tbody>
  </table>

  <hr>
  <script type="text/javascript">
    // 获取电脑和单价
    var cart1 = document.getElementById('cart1');
    // 电脑在table的第3个子元素的第2个子元素下的第2个子元素的内容中
    console.log(cart1.children[2].children[1].children[1].innerHTML);
    // 单价able的第3个子元素的第2个子元素下的第4个子元素的内容中
    console.log(cart1.children[2].children[1].children[3].innerHTML);
    // 更新单元格的数据是, 使电脑价格变为 6000
    cart1.children[2].children[1].children[3].innerHTML = 6000;
    /*table对象定义一些属性,可以快速获取指定的子元素
            1. tHead: <thead>
            2. tBodies: <tbody>...复数
            3. tFoot: <tfoot>
            4. rows: 所有行
            5. cells: 所有列*/
    console.log(cart1.tBodies[0].rows[1].cells[3].innerHTML); //另一种更简单的写法
    var data = [{
        id: 1,
        name: '牛奶',
        count: 3,
        price: 50
      },
      {
        id: 2,
        name: '苹果',
        count: 10,
        price: 80
      },
      {
        id: 3,
        name: '衣服',
        count: 2,
        price: 600
      }
    ];
    var cart2 = document.getElementById('cart2');
    var tbody = cart2.children[2];
    //遍历对象数组,value是一个对象
    data.forEach(function(value) {
      var tr = document.createElement("tr");
      tr.innerHTML += '<td>' + value.id + '</td>';
      tr.innerHTML += '<td>' + value.name + '</td>';
      tr.innerHTML += '<td>' + value.count + '</td>';
      tr.innerHTML += '<td>' + value.price + '</td>';
      tbody.appendChild(tr);
      // value.id
      // value.name
      // value.count
      // value.price
    })
  </script>
</body>

</html>

运行实例 »

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

运行结果

捕获.PNG

手写代码

QQ图片20190212170202.jpg

总结

1、

cart1.children[2].children[1].children[3].innerHTML和cart1.tBodies[0].rows[1].cells[3].innerHTML

 含义相同,指代的都是在table的第3个子元素的第2个子元素下的第2个子元素的内容

2、

table对象定义一些属性,可以快速获取指定的子元素:(1). tHead: <thead> (2). tBodies: <tbody>...复数

(3). tFoot: <tfoot>(4). rows: 所有行(5). cells: 所有列





Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post