0

0

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

WBOY

WBOY

发布时间:2022-05-16 17:58:57

|

2865人浏览过

|

来源于CSDN

转载

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

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

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

获取元素

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

1.通过ID获取(getElementById)

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

  • 上下文必须是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('p');
  • 参数是是获取元素的标签名属性,不区分大小写。
  • 返回值是一个类数组,没有找到返回空数组

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

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

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

document.querySelector('.animated')
  •  返回值是一个类数组

获取节点 

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

1. nodeName : 节点的名称

立即学习Java免费学习笔记(深入)”;

2. nodeValue :节点的值

3. nodeType :节点的类型

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

  • 元素节点的 nodeName 与标签名相同
  • 属性节点的 nodeName 是属性的名称
  • 文本节点的 nodeName 永远是 #text
  • 文档节点的 nodeName 永远是 #document

二、nodeValue 属性:节点的值

QIMI奇觅
QIMI奇觅

美图推出的游戏行业广告AI制作与投放一体化平台

下载
  • 元素节点的 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中
  • 语法:document.createDocumentFragment();
  • 承载节点
 (function()
    {
        var start = Date.now();
        var str = '', li;
        var ul = document.getElementById('ul');
        var fragment = document.createDocumentFragment();
        for(var i=0; i<10000; i++)
        {
            li = document.createElement('li');
            li.textContent = '第'+i+'个子节点';
            fragment.appendChild(li);
        }
        ul.appendChild(fragment);
        console.log('耗时:'+(Date.now()-start)+'毫秒'); // 63毫秒
    })();

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

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

28

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

8

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.3万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.6万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号