WebAPIs学习---DOM节点

一、DOM节点

DOM节点:

  • DOM树里的每一个节点称为DOM节点。

节点类型:

  • 元素节点
    • 所有的标签 比如 body、div
    • html是根节点
  • 属性节点
    • 所有的属性 比如href、src
  • 文本节点
    • 所有的文本
  • 其他

 二、节点操作

1,查找节点

  • 父节点查找
    • parentNode属性
    • 返回最近一级父节点,找不到返回null
    • 子元素.parentNode
  • 子节点查找
    • childNodes:获取所有子节点、包括文本节点(空格、换行)、注释节点等
    • children(重点)
      • 仅获得所有元素节点
      • 返回到还是个伪数组(有length属性,没有pop和push等方法)
    • 语法:父元素.children
  • 兄弟节点查找
    • 下一个兄弟节点:nextElementSibling属性
    • 上一个兄弟节点:previousElementSibling属性

实例代码

<!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>
        <ul>
            <li></li>
            <li class="two"></li>
            <li class="three"></li>
        </ul>
    </div>
    <script>
        // 获取ul父节点
        let div = document.querySelector('ul').parentNode
        console.log(div);
        //   获取ul的子节点
        let lis = document.querySelector('ul').children
        console.log(lis);
        // 查找class为two的兄弟节点
        let previousLi = document.querySelector('.two').previousElementSibling
        console.log(previousLi);
        let nextLi = document.querySelector('.two').nextElementSibling
        console.log(nextLi); 
    </script>
</body>

</html>

2,追加节点

  • 1.创建节点
    • 即创造出一个新的网页元素,再添加到网页内,一般先创建节点,然后插入节点
    • 创建元素节点方法:
document.createElement('标签名')
  • 2.追加节点
    • 要想在界面看到,还得插入到某个父元素中
    • 插入到父元素的最后一个子元素:
父元素.appendChild(要插入的元素)
  • 插入到父元素中某个子元素的前面
父元素.insertBefore(要插入的元素,在哪个元素前面)

3.增加节点

  • 在特殊的情况下,我们新增节点,按照如下操作
    • 复制一个原有的节点
    • 把复制的节点放入到指定的元素内部
  • 克隆节点
    • 元素.cloneNode(布尔值)
    • cloneNode会克隆出一个跟原标签一样的元素,括号内传入布尔值
      • 若为true,则代表克隆时包含后代节点一起克隆
      • 若为false,则代表克隆时不包含后代节点
      • 默认为false
      • 克隆出的节点追加和上边追加一样

代码演示克隆节点

<!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>
    <ul>
        <li>小li</li>
    </ul>
    <script>
        let ul = document.querySelector('ul')
        // 克隆节点,false不克隆子节点,默认为false
        let newUl = ul.cloneNode(false)
        console.log('false,默认时克隆不带后代的节点',newUl);
        // 克隆节点,包含子节点,true
        let newUl1 = ul.cloneNode(true)
        console.log('true,克隆带后代的节点',newUl1);
    </script>
</body>

</html>

 

 4.删除节点

  • 若一个节点在页面中不需要时,可以删除它
  • 在JavaScript原生DOM操作中,要删除元素必须通过父元素删除
  • 语法
    • 父元素.removeChild(要删除的元素)
  • 注:
    • 如果奴存在父子关系则删除不成功
    • 删除节点和隐藏节点(display:none)是有区别的;隐藏节点还是存在的,但是删除,则从html中删除节点
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值