JavaScript文档操作

news2024/11/23 11:17:23

文档对象模型(document object model,DOM)是W3C制定的一套技术规范,用来描述JavaScript脚本与HTML文档进行交互的Web标准。DOM规定了一系列标准接口,允许开发人员通过标准方式访问文档结构、操作网页内容、控制样式和行为等。

1、节点

节点(node)是DOM最基本的单元,并派生出不同类型的节点,它们共同构成文档结构模型。在网页中所有对象和内容都被称为节点,如文档、元素、文本、属性、注释等。

1.1、节点的类型

根据DOM规范,整个文档是一个文档节点,每个标签是一个元素节点,包含的文本是文本节点,标签的属性是一个属性节点,注释属于注释节点等。DOM节点类型说明如下表所示:
在这里插入图片描述

使用nodeType属性可以判断一个节点的类型,取值说明如下表所示:
在这里插入图片描述

1.2、节点的名称和值

使用nodeName和nodeValue属性可以读取节点的名称和值,属性取值说明如下表所示:
在这里插入图片描述

【示例】不同类型的节点,nodeName和nodeValue属性取值是不同的。元素的nodeName属性返回值是标签名,而元素的nodeValue属性返回值为null。因此在读取属性值之前,应该先检测类型:

    var node = document.getElementsByTagName("body")[0];
    if (node.nodeType==1)
        var value = node.nodeName;
    console.log(value);

nodeName属性在处理标签时比较实用,而nodeValue属性在处理文本信息时比较实用。

1.3、访问节点

DOM为Node类型定义如下属性,以方便JavaScript访问节点:

  • ownerDocument:返回当前节点的根元素(document对象)。
  • parentNode:返回当前节点的父节点。所有的节点都仅有一个父节点。
  • childNodes:返回当前节点的所有子节点的节点列表。
  • firstChild:返回当前节点的第一个子节点。
  • lastChild:返回当前节点的最后一个子节点。
  • nextSibling:返回当前节点之后相邻的同级节点。
  • previousSibling:返回当前节点之前相邻的同级节点。

【示例】针对下面文档结构:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body><span class="red">body</span>元素</body></html>

可以使用下面方法访问body元素:

    var b = document.documentElement.lastChild;
    var b = document.documentElement.firstChild.nextSibling.nextSibling;

通过下面方法可以访问span包含的文本:

    var text = document.documentElement.lastChild.firstChild.firstChild.nodeValue;

1.4、操作节点

操作节点的基本方法如下表所示:
在这里插入图片描述
提示:appendChild()、insertBefore()、removeChild()、replaceChild() 4种方法用于对子节点进行操作。使用这4种方法之前,可以使用parentNode属性先获取父节点。另外,并不是所有类型的节点都有子节点,如果在不支持子节点的节点上调用这些方法将会导致错误发生。

【示例】为列表框绑定一个click事件处理程序,通过深度克隆,新的列表框没有添加JavaScript事件,仅克隆HTML类样式和style属性:

    <h1>DOM</h1>
    <p>DOM<cite>Document Object Model</cite>首字母简写,中文翻译为<b>文档对象模型</b>,是<i>W3C</i>组织推荐
的处理可扩展标识语言的标准编程接口。</p>
    <ul>
        <li class="red">D表示文档,HTML文档结构。</li>
        <li title="列表项目2">O表示对象,文档结构的JavaScript脚本化映射。</li>
        <li style="color:red;">M表示模型,脚本与结构交互的方法和行为。</li>
    </ul>
    <script>
    var ul = document.getElementsByTagName("ul")[0]; //获取列表元素
    ul.onclick = function(){                         //绑定事件处理程序
     this.style.border= "solid blue 1px";
    }
    var ul1 = ul.cloneNode(true);                    //深度克隆
    document.body.appendChild(ul1);                  //添加到文档树中body元素下
    </script>

2、文档

文档节点代表整个文档,使用document可以访问文档节点,它是文档内其他节点的访问入口,提供了操作其他节点的方法。文档节点是唯一的,也是只读的,主要特征:nodeType等于9、nodeName等于"#document"、nodeValue等于null、parentNode等于null、ownerDocument等于null。

2.1、访问文档

在不同环境中,获取文档节点的方法也不同,具体说明如下:

  • 在文档内部节点,使用ownerDocument访问。
  • 在脚本中,使用document访问。
  • 在框架页,使用contentDocument访问。
  • 在异步通信中,使用XMLHttpRequest对象的responseXML访问。

2.2、访问子节点

文档子节点包括以下元素:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1184403.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot的bean属性校验

1.导入坐标 <!-- 导入JSR303规范--> <dependency><groupId>javax.validation</groupId><artifactId>validation-api</artifactId> </dependency> 2.Validated 说明&#xff1a;开启对当前bean的属性注入校验 package com.…

跨链知识指南

跨链知识指南 什么是跨链 跨链就是能够让两个不同的链产生某种关联的技术&#xff0c;或者说能把链A的东西搬到链B&#xff0c;跨链是一个复杂的过程&#xff0c;需要链对链外的信息的获取与验证&#xff0c;需要节点有单独的验证能力等等 什么是跨链桥&#xff1f; 跨链桥…

viple进阶3:打印不同形状的三角形

&#xff08;1&#xff09;题目&#xff1a;打印实心的三角形&#xff08;正三角&#xff09; 第一步&#xff1a;观察图形。首行是1颗星&#xff0c;其余的每一行都比上一行多1颗星&#xff1b;其次&#xff0c;每一行的星号数和行数值相等&#xff0c;第一行有1颗星&#xff…

国风数字人:数字时代的传统戏剧文化代言人

国风数字人不是简单搬运中国元素&#xff0c;而是创新优秀传统文化&#xff0c;结合现代元素&#xff0c;富含艺术性、趣味性、科技感&#xff0c;利用数字人的形式将国风文化“活”起来。 数字人翎Ling登上国风少年创演节目&#xff0c;演绎梅派京剧经典《天女散花》&#xff…

机器视觉的试卷批改系统 - opencv python 视觉识别 计算机竞赛

文章目录 0 简介1 项目背景2 项目目的3 系统设计3.1 目标对象3.2 系统架构3.3 软件设计方案 4 图像预处理4.1 灰度二值化4.2 形态学处理4.3 算式提取4.4 倾斜校正4.5 字符分割 5 字符识别5.1 支持向量机原理5.2 基于SVM的字符识别5.3 SVM算法实现 6 算法测试7 系统实现8 最后 0…

Camera Raw 16 v16.0.0

Camera Raw 16是一款允许摄影师处理原始图像文件的软件PS增效工具。原始图像文件是未经相机内部软件处理的数码照片&#xff0c;因此包含相机传感器捕获的所有信息。Camera Raw 为摄影师提供了一种在将原始文件转换为更广泛兼容的格式&#xff08;如 JPEG 或 TIFF&#xff09;之…

安卓手持机 条码扫描终端 物流仓储盘点机

HT520条码扫描手持机提供各种硬解扫描头选配 霍尼&#xff1a;HS7,4603,6603 斑马&#xff1a;4710,4750 新大陆&#xff1a;N1,CM60 可以快速、精准采集各种一/二维码、破损码、弯折码、屏幕码等光学图形条码。可选NFC读写功能&#xff0c;可以读各类卡证&#xff0c;会员卡…

【Python3】【力扣题】232. 用栈实现队列

【力扣题】题目描述&#xff1a; 栈&#xff1a;线性集合。后进先出。 队列&#xff1a;线性集合。先进先出。 【Python3】代码&#xff1a; 解题思路&#xff1a;两个栈&#xff0c;一个入队的栈&#xff0c;一个出队的栈。出栈时&#xff0c;若出队的栈为空&#xff0c;才将…

最全|阿里云ACP认证考试快速通关攻略

目前云计算人才紧缺&#xff0c;预计2025年我国云计算产业人才缺口预计将达到150万&#xff0c;因此现在云计算工程师的薪资是相当可观的。而阿里云从2016年起就一直在国内市场占据着领先地位 。 而阿里云ACP认证是当前比较热门的一个证书&#xff0c;也是从事云计算、大数据、…

服务号升级为订阅号的方法

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;我们都知道&#xff0c;服务号一个月只能发4次文章&#xff0c;但是订阅号每天都能发文章。不过在接收消息这一方面&#xff0c;服务号群发的消息有消息提醒&#xff0c;并显示在对话框&#xff1b…

SharePoint

网址&#xff1a; Sign in to your account 点击左侧小房子标志&#xff0c;到起始页面&#xff0c;再点击创建网站&#xff0c;选择自己想要的规则 创建好的网站 新建数据表 可以创建空白列表&#xff0c;也可以从其他导入 选择从现有列表里导入的话&#xff0c;只能导入表…

三维数字沙盘相比实体沙盘,有哪些创新性的优势?

沙盘是一种常用于展示城市规划、重要区域以及建筑物等内容的模型&#xff0c;并随着多媒体技术的不断进步&#xff0c;沙盘的应用形式也变得更加多样化&#xff0c;如今更是在规划馆、企业展厅、校史馆等主题展厅中扮演着不可或缺的角色&#xff0c;尤其是三维数字沙盘也是凭借…

每天五分钟计算机视觉:卷积层比全连接层的优势是什么?

本文重点 卷积神经网络中为什么要使用卷积,它和全连接层相比,卷积层的两个主要优势在于参数共享和稀疏连接。 参数比较 对于一张32*32*3图片: 如果用了 6 个大小为 55 的过滤器,输出维度为 28286,如果使用卷积层我们的参数就是5*5*3*6+6=456 如果使用全连接32323=307…

day61--单调栈2

503.下一个更大元素II 42. 接雨水 第一题&#xff1a;下一个更大元素2 给定一个循环数组&#xff08;最后一个元素的下一个元素是数组的第一个元素&#xff09;&#xff0c;输出每个元素的下一个更大元素。数字 x 的下一个更大的元素是按数组遍历顺序&#xff0c;这个数字之…

在微信小程序中怎么实现拼团活动

随着互联网的快速发展&#xff0c;拼团活动已成为一种时尚的购物方式。在微信小程序中&#xff0c;拼团活动同样受到广大用户的青睐。本文将为你介绍微信小程序中实现拼团活动的方法&#xff0c;让你轻松玩转团购&#xff0c;享受优惠乐趣。 一、微信小程序拼团活动的优势 方便…

【ReID】1、行人重识别模型

文章目录 一、概念二、实现方案三、代码 一、概念 ReID&#xff0c;也就是 Re-identification&#xff0c;其定义是利用算法&#xff0c;在图像库中找到要搜索的目标的技术&#xff0c;所以它是属于图像检索的一个子问题。 说白了&#xff0c;在监控拍不到人脸的情况下&#…

Samtec连接器技术科普 | 无线电源充电和Samtec EMI技术

摘要/前言 还记得&#xff0c;数年前&#xff0c;第一次在民用层面大量出现无线充电的时候&#xff0c;我们大部分人都被这样的“黑科技”所震惊。 时至今日&#xff0c;从前只能在科幻电影中看到的场景&#xff0c;都在逐一成为现实&#xff0c;而无线电源、无线充电等应用早…

基于SSM框架的电脑测评系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

leetcode:762. 二进制表示中质数个计算置位(python3解法)

难度&#xff1a;简单 给你两个整数 left 和 right &#xff0c;在闭区间 [left, right] 范围内&#xff0c;统计并返回 计算置位位数为质数 的整数个数。 计算置位位数 就是二进制表示中 1 的个数。 例如&#xff0c; 21 的二进制表示 10101 有 3 个计算置位。 示例 1&#xf…

爆火的小红书app拉新项目 地推网推百搭项目 附申请渠道

小红书app拉新在市场还是饱受地推团队和网推团队的喜爱&#xff0c;作业流程操作简单 可以通过“聚量推客”申请小红书app拉新推广 下面附送小红书app的拉新流程&#xff0c;目前也分为普通版本和高价版本&#xff08;普通版本更稳定&#xff0c;高价版本属于短期活动&#x…