js获取 元素 和 节点 大全

替换节点

文档碎片框


获取元素


  • 通过ID获取(getElementById

  • 通过name属性(getElementsByName

  • 通过标签名(getElementsByTagName

  • 通过类名(getElementsByClassName

  • 通过选择器获取一个元素(querySelector

  • 通过选择器获取一组元素(querySelectorAll

  • 获取html的方法(document.documentElement

  • 获取body的方法(document.body

1.通过ID获取(getElementById)


// 1 获取元素节点

    // 通过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个)

    document.getElementById('div1');

  • 上下文必须是document。

  • 必须传参数,参数是string类型,是获取元素的id。

  • 返回值只获取到一个元素,没有找到返回null。

2.通过类名(getElementsByClassName)




    // 通过类名查找元素,多个类名用空格分隔,得到一个HTMLCollection(一个元素集合,有length属性,可以通过索引号访问里面的某一个元素)

    var cls = document.getElementsByClassName('a b');

    console.log(cls);

  • 参数是元素的类名。

  • 返回值是一个类数组,没有找到返回空数组

3.通过name属性(getElementsByName)


 // 通过name属性查找,返回一个NodeList(一个节点集合,有length属性,可以通过索引号访问)

   var nm =  document.getElementsByName('c');

    console.log(nm);

4.通过标签名(getElementsByTagName)


    // 通过标签名查找元素 返回一个HTMLCollection

    document.getElementsByTagName('div');

  • 参数是是获取元素的标签名属性,不区分大小写。

  • 返回值是一个类数组,没有找到返回空数组

5.通过选择器获取一个元素(querySelector)


document.querySelector('.animated')

  • 参数是选择器,如:”div .className”。

  • 返回单个node,如果有多个匹配元素就返回第一个

6.通过选择器获取一组元素(querySelectorAll)


document.querySelector('.animated')

  • 返回值是一个类数组

--------💖分割线💖--------

获取节点


在文档对象模型 (DOM) 中,每个节点都是一个对象。DOM 节点有三个重要的属性

1. nodeName : 节点的名称

2. nodeValue :节点的值

3. nodeType :节点的类型

一、nodeName 属性: 节点的名称,是只读的。

  • 元素节点的 nodeName 与标签名相同

  • 属性节点的 nodeName 是属性的名称

  • 文本节点的 nodeName 永远是 #text

  • 文档节点的 nodeName 永远是 #document

二、nodeValue 属性:节点的值

  • 元素节点的 nodeValue 是 undefined 或 null

  • 文本节点的 nodeValue 是文本自身

  • 属性节点的 nodeValue 是属性的值

三、nodeType 属性: 节点的类型,是只读的。以下常用的几种结点类型:

  • 元素类型 节点类型

  • 元素 1

  • 属性 2

  • 文本 3  空格也是返回3

  • 注释 8

  • 文档 9

🍀创建节点:

1.创建节点:createElement(‘’)


 // 创建元素,只是创建出来并未添加到html中,需要与appendChild 配合使用

    var elem = document.createElement('p');

    elem.id = 'test';

    elem.style = 'color: red';

    elem.innerHTML = '我是新创建的节点';

    document.body.appendChild(elem);

2.插入节点:appendChild ()

  • 用法是: parent.appendChild(child)

  • 会将child节点添加到parent里的最后面

  • 如果子节点原本就存在,会移除原节点,添加新节点 到最后,但是事件会保留


 var oNewp=document.createElement("p");

      var oText=document.createTextNode("World Hello");

      oNewp.appendChild(oText);

2-1.插入节点:insertBefore()

  • 用法是 parent.insertBefore(newNode,refNode);

     var oOldp=document.body.getElementsByTagName("p")[0];

      document.body.insertBefore(oNewp,oOldp);

🍀删除节点

1.删除节点:removeChild

  • 用法是:parent.removeChild(child)

  • 如果删除的不是父元素的子节点会报错


   var op=document.body.getElementsByTagName("p")[0];

         op.parentNode.removeChild(op);

🍀克隆节点

1.克隆节点:parent.cloneNode() false 或者true

  • 克隆节点(需要接受一个参数来表示是否复制元素)

  // 克隆节点(需要接受一个参数来表示是否复制元素)

    var form =  document.getElementById('test');

    var clone = form.cloneNode(true);

    clone.id = 'test2';

    document.body.appendChild(clone);

🍀替换节点

1.替换节点 方法node.replace(new,old)


       var oOldp=document.body.getElementsByTagName("p")[0];

       oOldp.parentNode.replaceChild(oNewp,oOldp);

🍀文档碎片框

  • 作用:当向document中添加大量的节点时,如果逐个添加将会十分缓慢,这时可以使用文档碎片一次性添加到document中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值