特色栏目

ASP源码

PHP源码

.NET源码

JSP源码

游戏频道
专题合集
关闭菜单
首页> Javascript教程> JavaScript知识点整理之获取元素和节点

JavaScript知识点整理之获取元素和节点

时间:2022-06-11 09:02:49 作者:互联网
本篇文章给大家带来了关于javascript的相关知识,其中主要介绍了关于获取元素和节点的相关内容,包括了通过id、类名、name、标签名获取元素,创建、删除、克隆节点等问题,下面一起来看一下,希望对大家有帮助。

【相关推荐:javascript视频教程、web前端】

获取元素

  • 通过ID获取(getElementById
  • 通过name属性(getElementsByName
  • 通过标签名(getElementsByTagName
  • 通过类名(getElementsByClassName
  • 通过选择器获取一个元素(querySelector
  • 通过选择器获取一组元素(querySelectorAll
  • 获取html的方法(do***ent.documentElement
  • 获取body的方法(do***ent.body

1.***%80%9A%E8%BF%87ID%E8%8E%B7%E5%8F%96%EF%BC%88getElementById%EF%BC%89">1.通过ID获取(getElementById)

// 1 获取元素节点
    // 通过id的方式( 通过id查找元素,大小写敏感,如果有多个id只找到第一个)
    do***ent.getElementById('p1');

  • 上下文必须是document。
  • 必须传参数,参数是string类型,是获取元素的id。
  • 返回值只获取到一个元素,没有找到返回null。

2.***%80%9A%E8%BF%87%E7%B1%BB%E5%90%8D%EF%BC%88getElementsByClassName%EF%BC%89">2.通过类名(getElementsByClassName)

    // 通过类名查找元素,多个类名用空格分隔,得到一个HTMLCollection(一个元素集合,有length属性,可以通过索引号访问里面的某一个元素)
    var cls = do***ent.getElementsByClassName('a b');
    co***le.log(cls);
  • 参数是元素的类名。
  • 返回值是一个类数组,没有找到返回空数组

3.***%80%9A%E8%BF%87name%E5%B1%9E%E6%80%A7%EF%BC%88getElementsByName%EF%BC%89%C2%A0">3.通过name属性(getElementsByName)

 // 通过name属性查找,返回一个NodeList(一个节点集合,有length属性,可以通过索引号访问)
   var nm =  do***ent.getElementsByName('c');
    co***le.log(nm);

4.***%80%9A%E8%BF%87%E6%A0%87%E7%AD%BE%E5%90%8D%EF%BC%88getElementsByTagName%EF%BC%89%C2%A0">4.通过标签名(getElementsByTagName)

    // 通过标签名查找元素 返回一个HTMLCollection
    do***ent.getElementsByTagName('p');
  • 参数是是获取元素的标签名属性,不区分大小写。
  • 返回值是一个类数组,没有找到返回空数组

%C***05.%E9%80%9A%E8%BF%87%E9%80%89%E6%8B%A9%E5%99%A8%E8%8E%B7%E5%8F%96%E4%B8%80%E4%B8%AA%E5%85%83%E7%B4%A0%EF%BC%88querySelector%EF%BC%89"> 5.通过选择器获取一个元素(querySelector)

do***ent.querySelector('.animated')
  • 参数是选择器,如:”p .className”。
  • 返回单个node,如果有多个匹配元素就返回第一个

6.***%80%9A%E8%BF%87%E9%80%89%E6%8B%A9%E5%99%A8%E8%8E%B7%E5%8F%96%E4%B8%80%E7%BB%84%E5%85%83%E7%B4%A0%EF%BC%88querySelectorAll%EF%BC%89%C2%A0">6.通过选择器获取一组元素(querySelectorAll)

do***ent.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 = do***ent.createElement('p');
    elem.id = 'test';
    el***style = 'color: red';
    el***innerHTML = '我是新创建的节点';
    do***ent.body.appendChild(elem);

2.插入节点:appendChild ()

  • 用法是: pa***t.appendChild(child)
  • 会将child节点添加到parent里的最后面
  • 如果子节点原本就存在,会移除原节点,添加新节点 到最后,但是事件会保留
 var oNewp=do***ent.createElement("p");
      var oT***=document.createTextNode("World Hello");
      oN***.appendChild(oText);

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

  • 用法是 pa***t.insertBefore(newNode,refNode);
     var oOldp=do***ent.body.getElementsByTagName("p")[0];
      do***ent.body.insertBefore(oNewp,oOldp);

删除节点

1.删除节点:removeChild

  • 用法是:pa***t.removeChild(child)
  • 如果删除的不是父元素的子节点会报错
   var op=do***ent.body.getElementsByTagName("p")[0];
         op***rentNode.removeChild(op);

克隆节点

1.克隆节点:pa***t.cloneNode() false 或者true

  • 克隆节点(需要接受一个参数来表示是否复制元素)
  // 克隆节点(需要接受一个参数来表示是否复制元素)
    var form =  do***ent.getElementById('test');
    var clone = fo***cloneNode(true);
    clone.id = 'test2';
    do***ent.body.appendChild(clone);

替换节点

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

       var oOldp=do***ent.body.getElementsByTagName("p")[0];
       oO***.parentNode.replaceChild(oNewp,oOldp);

文档碎片框

  • 作用:当向document中添加大量的节点时,如果逐个添加将会十分缓慢,这时可以使用文档碎片一次性添加到document中
  • 语法:do***ent.createDocumentFragment();
  • 承载节点
 (function()
    {
        var start = Date.now();
        var str = '', li;
        var ul = do***ent.getElementById('ul');
        var fragment = do***ent.createDocumentFragment();
        for(var i=0; i<10000; i++)
        {
            li = do***ent.createElement('li');
            li***xtContent = '第'+i+'个子节点';
            fr***ent.appendChild(li);
        }
        ul***pendChild(fragment);
        co***le.log('耗时:'+(Date.now()-start)+'毫秒'); // 63毫秒
    })();

【相关推荐:javascript视频教程、web前端】

以上就是JavaScript知识点整理之获取元素和节点的详细内容,更多请关注源码网其它相关文章!

相关文章 最新文章

相关应用

热门文章

猜你喜欢

返回顶部