JS节点操作练习题

时间:2024-11-12 07:26:14

1、创建添加节点

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>01.创建添加节点</title>
  </head>
  <body>
    <!-- 
       需求1:在段落p的后面添加一个span标签,添加span的文本内容‘我是一个span’
            父节点.appendChild(添加的标签);
       需求2:在段落p的前面添加一个h1标签,添加h1的文本内容,‘我是一个h1’
            父节点.insertBefore(添加的标签, 哪个标签前面)
     -->
    <div id="box">
      <!-- <h1>我是一个h1标签</h1> -->
      <p>段落</p>
      <!-- <span>我是一个span标签</span> -->
    </div>
    <button>添加span</button>
    <button>添加h1</button>
    <script>
      var btns = document.querySelectorAll("button");
      var p = document.querySelector("p");
      var box = document.getElementById("box");
      //需求1
      btns[0].onclick = function () {
        // 1.1 创建节点
        let spanElement = document.createElement("span");
        // console.log(spanElement);
        // 1.2 创建文本内容
        let spanText = document.createTextNode("我是一个span标签");
        // console.log(spanText);
        // 1.3将文本内容放入到span节点里
        spanElement.appendChild(spanText);
        // console.log(spanElement);
        // 1.4追加节点
        box.appendChild(spanElement);
      };
      //需求2
      btns[1].onclick = function () {
        //2.1 创建节点
        let h1Element=document.createElement('h1')
        //2.2 创建h1文本内容
        let h1Text=document.createTextNode('我是一个h1标签')
        //2.3 将h1Test放入到节点内
        h1Element.appendChild(h1Text)
        //2.4 添加节点
        box.insertBefore(h1Element,p)
      };
    </script>
  </body>
</html>

2、替换删除节点

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>02.替换删除节点</title>
  </head>
  <body>
    <!-- 需求一:点击按钮1,将《金瓶梅》替换为《水浒传》
           需求二:点击按钮2,删除《金瓶梅》
    -->
    <button>按钮1</button>
    <button>按钮2</button>
    <ul>
      <li>《红楼梦》</li>
      <li>《三国演义》</li>
      <li>《西游记》</li>
      <li>《金瓶梅》</li>
    </ul>
    <script>
      var btns = document.querySelectorAll("button");
      var ul = document.querySelector("ul");
      var jpm = ul.children[3];
      // 父节点.replaceChild(新节点,旧节点)
      btns[0].onclick = function () {
        // 创建《水浒传》节点
        let liElement = document.createElement("li");
        let liText = document.createTextNode("《水浒传》");
        liElement.appendChild(liText);
        // 替换节点
        ul.replaceChild(liElement, jpm);
      };
      btns[1].onclick = function () {
        // 删除节点写法一
        // ul.removeChild(jpm)
        // 删除节点写法二
        jpm.parentNode.removeChild(jpm);
      };
    </script>
  </body>
</html>

3、克隆节点

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>03.克隆节点</title>
    <style>
      #box {
        width: 100px;
        height: 100px;
        background-color: red;
      }
    </style>
  </head>
  <body>
    <!-- 需求:点击按钮克隆div元素-->
     <!-- node.cloneNode() -->
    <div id="box">
      <span>box盒子</span>
    </div>
    <button>克隆</button>
    <script>
      var box = document.getElementById("box");
      document.querySelector("button").onclick = function () {
        // 克隆节点  //false  只克隆节点  true  克隆节点,克隆内容
       let box2= box.cloneNode(true)
      //  console.log(box2);
        //添加克隆节点
        document.body.appendChild(box2)
      };
    </script>
  </body>
</html>

4、创建节点补充方式 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>04.创建节点的另外两种方式</title>
  </head>
  <body>
    <!-- 
    需求1:获取ul里面的li内容
    需求2:在ul里添加《水浒传》到页面中
         innerHTML、document.write()      
    -->
    <button>获取</button>
    <button>添加</button>
    <ul>
      <li>红楼梦》</li>
    </ul>
    <script>
      var btns = document.querySelectorAll("button");
      var ul = document.querySelector("ul");
      // 需求1
      btns[0].onclick = function () {
        let li = ul.children[0];
        // console.log(li.innerHTML);
        // console.log(li.innerText);
      };
      //需求2
      btns[1].onclick = function () {
        //   第一种写法
        // let liElement = document.createElement("li");
        // let liText = document.createTextNode("《水浒传》");
        // liElement.appendChild(liText);
        // ul.appendChild(liElement);
        // 第二种写法  innerHTML
        // let liElement = document.createElement("li");
        // liElement.innerHTML = "《水浒传》";
        // liElement.innerText = "《水浒传》";
        // ul.appendChild(liElement);
        // 第三种写法 *****
        // let liElement = `<li>《水浒传》</li>`;
        // ul.innerHTML = ul.innerHTML + liElement;
        // 第四种写法  document.write()  
        // let liElement = `<li>《水浒传》</li>`;
        // let bodyElement = document.body.innerHTML + liElement;
        // console.log(bodyElement);
        // document.write(bodyElement);
        // 第五种写法   *****
        let liElement=`<li>《水浒传》</li>`
        ul.insertAdjacentHTML('beforeend',liElement)
      };
    </script>
  </body>
</html>