js节点操作

目录

一、概念

二、获取节点

1. 获取div标签对象中的所有节点

 2. 获取div标签对象中的标签节点

3. 获取div标签对象中的第一个节点

4. 获取div标签对象中的最后一个节点

5. 获取div标签对象中的第一个标签节点

 6. 获取div标签对象中的最后一个标签节点

7.  获取span标签上一个节点

8. 获取span标签下一个节点

​ 9. 获取span标签上一个标签节点

10.  获取span标签下一个标签节点

11. 获取span标签父级节点

12. 获取span标签属性节点

三、创建节点

1.创建标签节点

2.写入标签节点

 四、克隆节点


一、概念

节点操作是DOM操作的另外一种语法形式

    DOM操作是以html标签对象为单位,获取的是html中的标签操作的是html标签对象

    节点操作是以DOM节点为操作对象,操作的是html标签对象

实际项目中一般不会使用DOMj节点操作,获取标签操作等

一般使用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>Document</title>
</head>
<body>
  <div>
    我是div标签
    <p>我是p标签</p>
    <!-- 我是注释内容 -->
    <span id="span1" class="span2" name="span3">我是span标签</span>
    <h1>我是h1标签</h1>
    <a href="JavaScript:;">我是a标签</a>
  </div>
<script>

    //获取标签对象
    var oDiv = document.querySelector('div');
    var oSpan = document.querySelector('span');

  </script>
</body>
</html>

以下内容,均在script标签中进行操作:

1. 获取div标签对象中的所有节点

console.log(oDiv.childNodes);

 2. 获取div标签对象中的标签节点

console.log(oDiv.children);

3. 获取div标签对象中的第一个节点

console.log(oDiv.firstChild);

4. 获取div标签对象中的最后一个节点

console.log(oDiv.lastChild);

5. 获取div标签对象中的第一个标签节点

console.log(oDiv.firstElementChild);

 6. 获取div标签对象中的最后一个标签节点

console.log(oDiv.lastElementChild);

7.  获取span标签上一个节点

console.log(oSpan.previousSibling);

8. 获取span标签下一个节点

console.log(oSpan.nextSibling);

 9. 获取span标签上一个标签节点

console.log(oSpan.previousElementSibling);

10.  获取span标签下一个标签节点

console.log(oSpan.nextElementSibling);

11. 获取span标签父级节点

console.log(oSpan.parentNode);

12. 获取span标签属性节点

console.log(oSpan.attributes);

三、创建节点

1.创建标签节点

var 变量 = document.createElement('标签名称');

创建一个 空标签

通过 DOM操作给标签节点设定内容,样式,事件等等操作

2.写入标签节点

2.1 在标签对象的末位新增标签节点

  标签对象.appendChild(标签节点);

2.2 在标签对象中指定的标签之前写入节点

  标签对象.insertBfore(写入节点,在谁之前);

<!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>Document</title>
</head>
<body>
  <div>
    <h1>我是h1标签</h1>
    <p>我是p标签</p>
  </div>

  <script>
    //获取div标签对象
    var oDiv = document.querySelector('div');
    //获取p标签对象
    var oP = document.querySelector('p');

    //创建一个span标签对象
    //创建了一个空span标签 
    var oSpan = document.createElement('span');

    //设定标签节点内容
    oSpan.innerHTML = '我是设定的内容';

    //设定css样式
    oSpan.style.color = 'blue';
    oSpan.style.background = 'pink';

    //绑定点击事件
    oSpan.addEventListener('click',function(){
      console.log('在努力写博客');
    });

    //在div标签的末位 新增 span标签节点
    //oDiv.appendChild(oSpan);
    //只展示下面的实现效果,上面这行代码,暂时注释掉

    //在div标签中 指定的p标签前写入span标签节点
    oDiv.insertBefore(oSpan,oP);

  </script>
</body>
</html>

 四、克隆节点

克隆语法只会克隆标签和标签内容 不会克隆标签绑定的事件

1.只克隆标签对象本身

   var 变量 = 标签对象.cloneNode();

2.克隆标签对象本身以及标签对象的内容

   var 变量 = 标签对象.cloneNode(true);

<!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>Document</title>
</head>

<body>
  <div>
    <h1>我是h1标签</h1>
    <p>我是p标签</p>
  </div>

  <script>
    //获取div标签对象
    var oDiv = document.querySelector('div');

    //绑定点击事件
    oDiv.addEventListener('click',function(){
      console.log('在努力写博客');
    });

    //克隆标签对象本身
    var oDivClone1 = oDiv.cloneNode();
    //克隆标签对象本身以及标签对象的内容
    var oDivClone2 = oDiv.cloneNode(true);

    //将克隆的节点写入body的最下边
    document.body.appendChild(oDivClone1);
    document.body.appendChild(oDivClone2);
  </script>
</body>

</html>

克隆语法只会克隆标签和标签内容 不会克隆标签绑定的事件,点击div里的内容,会触发点击事件,点击克隆的div内容,不会触发点击事件

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王昭没有君啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值