Javascript的API基本内容(四)

目录

一、日期对象

二、DOM 节点

(1)查找父节点

(2)查找子节点

(3)查找兄弟结点

(4)插入(增加)节点

a:.创建节点

b:追加节点

(5)删除节点

 三、综合案例

一、日期对象

获取时间戳的方法,分别为 getTime 和 Date.now 和 +new Date()

  // 1. 实例化
  const date = new Date()
  // 2. 获取时间戳
  console.log(date.getTime())
// 还有一种获取时间戳的方法
  console.log(+new Date())
  // 还有一种获取时间戳的方法
  console.log(Date.now())

二、DOM 节点

DOM节点的类型

  • DOM树里每一个内容都称之为节点
  • 节点类型:元素节点,所有的标签 比如 body、 div。html 是根节点。 属性节点,所有的属性 比如 href。文本节点,所有的文本。其他

(1)查找父节点

parentNode 属性,返回最近一级的父节点 找不到返回为null

(2)查找子节点

childNodes:获得所有子节点、包括文本节点(空格、换行)、注释节点等
children 属性 (重点)

  • 仅获得所有元素节点
  • 返回的还是一个伪数组

 

(3)查找兄弟结点

下一个兄弟节点:nextElementSibling 属性
上一个兄弟节点:previousElementSibling 属性

(4)插入(增加)节点

a:.创建节点

即创造出一个新的网页元素,再添加到网页内,一般先创建节点,然后插入节点

b:追加节点

要想在界面看到,还得插入到某个父元素中,插入到父元素的最后一个子元素:

 

 插入到父元素中某个子元素的前面

(5)删除节点

若一个节点在页面中已不需要时,可以删除它
l 在 JavaScript 原生DOM操作中,要删除元素必须通过父元素删除

 三、综合案例

要求:根据输入的内容注册学生信息,点击录入按钮增加学生信息列,点击对应的删除按钮可以删除对应的信息列

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>学生信息</title>
  </head>
  <style>
    .box {
      margin: 0 auto;
      text-align: center;
    }
    .box .formbox {
      width: 1000px;
      height: 80px;
      line-height: 80px;
      margin: 0 auto;
    }
    input {
      width: 100px;
      margin-right: 20px;
    }
    select {
      margin-right: 20px;
      width: 80px;
    }
    button {
      background-color: rgb(57, 57, 97);
      color: aliceblue;
      width: 80px;
    }
    .tablebox {
      width: 800px;
      margin: 0 auto;
    }
    table {
      border-collapse: collapse;
    }
    th {
      width: 111px;
      padding: 10px;
      background: #cfe5ff;

      font-size: 20px;
      font-weight: 400;
    }
    td,
    th {
      border: 1px solid #b8daff;
    }
    td {
      padding: 10px;
      color: #666;
      text-align: center;
      font-size: 16px;
    }
    tbody tr {
      background: #fff;
    }
    .delete {
      border: 0;
      width: 40px;
      background-color: #fff;
      color: rgb(24, 21, 21);
      border-bottom: 1px solid rgb(102, 137, 240);
    }
  </style>
  <body>
    <div class="box">
      <h1>学生注册信息表</h1>
      <div class="formbox">
        <form action="#">
          姓名:<input class="name" name="name" /> 年龄:<input
            class="age"
            name="age"
          />
          性别:<select class="sex" name="sex">
            <option value="男">男</option>
            <option value="女">女</option>
          </select>
          班级:<input class="banji" name="banji" /> 城市:<select
            class="city"
            name="city"
          >
            <option>北京</option>
            <option>上海</option>
            <option>广州</option>
            <option>深圳</option>
          </select>
          <button class="luru">录入</button>
        </form>
      </div>
      <h2>信息榜</h2>
      <div class="tablebox">
        <table>
          <thead>
            <th>学号</th>
            <th>姓名</th>
            <th>年龄</th>
            <th>性别</th>
            <th>班级</th>
            <th>城市</th>
            <th>操作</th>
          </thead>
          <tbody></tbody>
        </table>
      </div>
    </div>
    <script>
      const name = document.querySelector(".name");
      const age = document.querySelector(".age");
      const sex = document.querySelector(".sex");
      const city = document.querySelector(".city");
      const banji = document.querySelector(".banji");
      const tbody = document.querySelector("tbody");
      const arr = [];
      const btn = document.querySelector(".luru");
      // 获取所有带有name属性的 元素
      const items = document.querySelectorAll("[name]");
      btn.addEventListener("click", function (e) {
        // 阻止默认行为  不跳转
        e.preventDefault();
        for (let i = 0; i < items.length; i++) {
          if (items[i].value == "") {
            return alert("输入不能为空");
          }
        }
        let obj = {
          id: arr.length + 1,
          name: name.value,
          age: age.value,
          sex: sex.value,
          banji: banji.value,
          city: city.value,
        };
        arr.push(obj);
        render();
      });
      // 点击录入时调用的函数
      function render() {
        // 先清空tbody 以前的行 ,把最新数组里面的数据渲染完毕
        tbody.innerHTML = "";
        for (let j = 0; j < arr.length; j++) {
          let node = document.createElement("tr");
          node.innerHTML = `
          <td>${arr[j].id}</td>
          <td>${arr[j].name}</td>
          <td>${arr[j].age}</td>
          <td>${arr[j].sex}</td>
          <td>${arr[j].banji}</td>
          <td>${arr[j].city}</td>
          <td><a class="delete" data-id=${j}>删除</a></td>
          
          `;
          // 追加元素  父元素.appendChild(子元素)
          tbody.appendChild(node);
        }
      }
      tbody.addEventListener("click", function (e) {
        console.log(e.target.tagName);
        if (e.target.tagName == "A") {
          arr.splice(e.target.dataset.id, 1);
        }
        render();
      });
    </script>
  </body>
</html>

猜你喜欢

转载自blog.csdn.net/qq_55928824/article/details/129247382