zoukankan      html  css  js  c++  java
  • 节点操作案例7-动态创建表格

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
      <style>
        #box table {
          border-collapse: collapse;
        }
      </style>
    </head>
    <body>
      <div id="box"></div>
      <script src="common.js"></script>
      <script>
        // var s = {name: 'zs', subject: '语文', score: 90};
        // 模拟数据
        var datas = [
          {name: 'zs', subject: '语文', score: 90},
          {name: 'ls', subject: '数学', score: 80},
          {name: 'ww', subject: '英语', score: 99},
          {name: 'zl', subject: '英语', score: 100},
          {name: 'xs', subject: '英语', score: 60},
          {name: 'dc', subject: '英语', score: 70}
        ];
    
        // 表头数据
        var headDatas = ['姓名', '科目', '成绩', '操作'];
    
        // 1 创建table 元素
        var table = document.createElement('table');
        my$('box').appendChild(table);
        table.border = '1px';
        table.width = '400px';
    
        // 2 创建表头
        var thead = document.createElement('thead');
        table.appendChild(thead);
    
        var tr = document.createElement('tr');
        thead.appendChild(tr);
        tr.style.height = '40px';
        tr.style.backgroundColor = 'lightgray';
    
        // 遍历头部数据,创建th
        for (var i = 0; i < headDatas.length; i++) {
          var th = document.createElement('th');
          tr.appendChild(th);
          // th.innerText
          setInnerText(th, headDatas[i]);
        }
        
        // 3 创建数据行
        var tbody = document.createElement('tbody');
        table.appendChild(tbody);
        tbody.style.textAlign = 'center';
        for (var i = 0; i < datas.length; i++) {
          // 一个学生的成绩 {name: 'zl', subject: '英语', score: 100},
          var data = datas[i];
          tr = document.createElement('tr');
          tbody.appendChild(tr);
    
          // 遍历对象
          for (var key in data) {
            var td = document.createElement('td');
            tr.appendChild(td);
            setInnerText(td, data[key]);
          }
          // 生成删除对应的列
          td = document.createElement('td');
          tr.appendChild(td);
          // 删除的超链接
          var link = document.createElement('a');
          td.appendChild(link);
          link.href = 'javascript:void(0)';
          setInnerText(link, '删除');
    
          link.onclick = linkDelete;
        }
    
        function linkDelete() {
          // removeChild()
          // 获取父元素
          // 
          // 获取要删除的行
          var tr = this.parentNode.parentNode;
          tbody.removeChild(tr);
          return false;
        }
      </script>
    </body>
    </html>

    conmon中的内容

    function my$(id) {
      return document.getElementById(id);
    }
    
    // 处理浏览器兼容性
    // 获取第一个子元素
    function getFirstElementChild(element) {
        var node, nodes = element.childNodes, i = 0;
        while (node = nodes[i++]) {
            if (node.nodeType === 1) {
                return node;
            }
        }
        return null;
    }
    
    // 处理浏览器兼容性
    // 获取下一个兄弟元素
     function getNextElementSibling(element) {
        var el = element;
        while (el = el.nextSibling) {
          if (el.nodeType === 1) {
              return el;
          }
        }
        return null;
      }
    
    
    // 处理innerText和textContent的兼容性问题
    // 设置标签之间的内容
    function setInnerText(element, content) {
      // 判断当前浏览器是否支持 innerText
      if (typeof element.innerText === 'string') {
        element.innerText = content;
      } else {
        element.textContent = content;
      }
    }
  • 相关阅读:
    jmeter的断言
    Fiddler(五)设置显式IP地址
    学习pycharm----自动化接口
    fidder重复创建数据+模拟接口响应数据+fidder接口测试
    python网络/并发编程部分简单整理
    python面向对象部分简单整理
    python模块与包简单整理
    python函数部分整理
    Python基础部分整理
    Scheme Implementations对比
  • 原文地址:https://www.cnblogs.com/jiumen/p/11412377.html
Copyright © 2011-2022 走看看