dom对象的应用

DOM 方法:理解和应用文档对象模型 DOM是W3C(万维网联盟)的标准,它将HTML或XML文档表示为树形结构,其中每个节点代表文档中的一个元素。通过DOM,开发者可以轻松地添加、删除和修改页面上的元素,从而实现动态内容更新和用户交互。DOM方法是网页开发中的基础技能,它们允许开发者以编程方式操作文档的内容和结构。掌握DOM方法对于创建动态和交互式的网页至关重要。通过本文的介绍,希望您对DOM方法有了更深入的理解,并能够在实际项目中有效地应用它们。 阅读详情

DOM模型使用汇总 收藏

 在ajax中,dom模型其实是最核心的结构,是所有ajax开发的基础架构。如果没有dom模型,就没有

办法在客户端改变页面的内容,所有的局部刷新、异步请求也就无从实现。熟练掌握dom模型的相关

技术,才算真正掌握了ajax开发精髓。
在dom模型中,整个文档就是由层次不同的多个结点组成的。可以说结点代表了全部的内容,每个结

点都可以看成一棵树的根结点,整个文档是一个递归的结构。因此掌握了结点的用法,也就掌握了

对dom模型的用法。结点的类型有三种:元素结点,文本结点,属性结点。每个结点都是一个对象。
在dom模型中引用一个结点有很多方式。
1.使用document.getElementById()引用指定id的结点
在htnl文档中,每个标记都可以有一个id属性。标准中规定:这个id必须是整个文档唯一的。
2.使用document.getElementsByTagName()引用指定标记名称的结点
这个方法可以用来获得指定标记的元素结点的集合,返回一个数组,包含对这些结点的引用。
3.引用子结点
每个结点都有一个childNodes集合属性,类型是数组对象,表示该结点的所有子结点的集合。这些

子结点按照其在文档中出现的顺序排列,因此可以通过索引来一次访问各个子结点。例如为了引用

html文档的根结点<html>,可以使用下面的代码:
document.childNodes[0];
而<head>和<body>结点是<html>的子结点,可以分别用以下两条语句引用:
document.childNodes[0].childNodes[0];//引用<head>结点
document.childNodes[1].childNodes[1];//引用<body>结点
除了使用childNodes属性,还有两个属性可以用于引用子结点。分别是:
element.firstChild;
element.lastChild;
他们分别表示第一个子结点和最后一个子结点。
4.引用父结点
html的结点层次是一个树状的结构,除了根结点外,每个结点都仅有一个父结点。可以由

parentnode属性来引用,语法如下:
element.parentNode
5.引用兄弟结点
属于同一个文档层次的结点称为兄弟结点。有两个属性可以用于兄弟结点间的相互引用,分别是:
element.nextSibling; //引用上一兄弟结点
element.previousSibling;// 引用下一兄弟结点
如果该结点没有相应的兄弟结点,则属性返回null。如果知道当前结点在父结点集合中缩影,也可

以利用parentNode和childNodes属性实现兄弟结点间的相互引用。通常可以采用如下的形式:
element.parentNode.childNodes[index+1];//相当于nextSibling
element.parentNode.childNodes[index-1];//相当于previousSibling

获取结点信息
在获得一个结点的引用之后,有一些方法可以获得该结点的信息,下面分别介绍。
1.使用nodeName属性获取结点名称
语法如下:
Node.nodeName;
对于不同的结点类型,nodeName的返回值有所差异:
(1)元素结点:返回标记的名称。例如<span></span>则返回"span"
(2)属性结点:返回属性的名称,例如id="span1"则返回"id"
(3)文本结点:返回文本的内容
2.使用nodeType属性获取结点类型
语法如下:
Node.nodeType;
对应3种类型的结点,nodeType以数字的形式返回他们的类型:
(1)元素结点:返回1;
(2)属性结点:返回2;
(3)文本结点:返回3。
3.使用nodeValue属性获取结点的值
(1)元素结点:返回null;
(2)属性结点:返回undefined;
(3)文本结点:返回文本内容。
nodeValue属性可以看作是专门为文本结点所设置的。
4.使用hasChildNodes()方法判断给定结点是否有子结点
语法如下:
Node.hasChildNodes();
改方法返回给定结点是否有子结点。如果有至少1个,则返回true;如果没有子结点,则返回false

。
5.使用tagName属性返回元素结点的标记名称
该属性是元素结点独有的属性,和nodeName具有相同的返回值,即返回标记的名称。


处理属性结点
属性结点作为一个特殊的结点,是依赖元素结点而存在的。
1.获取和设置属性结点的值
每个属性结点都是元素结点的一个属性,可以通过如下形式访问:
元素结点.属性名称
imgNode=document.getElementById("img1");
imgNode.src="chinazk.gif";
2.使用setAttribute()方法添加一个属性
语法:
elementnode.setAttribute(attributeName,attributeValue);
其中:
elementNode是要添加属性的结点;
attributeName是要添加的属性的名称;
attributeValue是属性的值。
这是DOM标注推荐的添加属性的方法,还可以使用结点名加属性名的方式来添加属性。
3.使用getAttribute()方法获取一个属性值
语法:
elementnode.getAttribute(attributeName);
其中:
elementNode是要获取属性的结点
attributeName是要获取值的属性的名称。

处理文本结点
要获取一个结点内的文本,通常可以使用innerHTML属性,例如:
document.getElementById("span1").innerHTML;
一个结点内的文本是一个文本结点,因此可以通过通用的结点处理方法来获取他的值,例如:
document.getElementById("span1").childNodes[0].nodeValue;

使用innerHTML改变结点的内容
除了使用标准的DOM方法外,innerHTML这个属性因其使用的灵活性受到了多数浏览器的很好的支持

。该属性表述两个HTML标记之间以代码形式表示的所有内容。例如:
var div1=document.getElementById("divTest");
alert(div1.innerHTML);
innerHTML属性不局限于操作一个结点,而是可以使用HTML片段直接填充页面或直接获取HTML片段,

大大提高了开发的灵活性。

改变文档的层次结构
1.使用document.createElement方法创建元素结点
创建一个元素结点的语法如下:
document.createElement(elementName);
其中document即文档对象,elementName是所要创建的结点的标记名称,例如:
var divElement=document.createElement("div");
2.使用document.createTextNode方法创建文本结点
语法:
document.createTextNode(text);
其中text是要创建的文本结点中的文本值。这里的文本就是纯文本,不用经过HTML的转义。例如:
document.createTextNode("<hello>");
当将此文本结点直接显示时,他会正确地显示出尖括号(<hello>),而不用进行HTML编码
3.使用appendChild方法添加结点
结点创建后,并没有立即附加到文档层次结构中。我们可以用appendChild方法和insertBefore方法

添加到文档中。appendChild方法是将结点添加到引用的父结点的所有的子结点之后。
语法:
parentElement.appendChild(childElement);
其中,parentElement是父结点的引用,childElement是要添加的子结点的引用。该方法返回对新结

点的引用。例如:
<dl id="dl1">
  <dt>dt1</dt>
  <dd>dd1</dd>
</dl>
<script language="JavaScript" type="text/javascript">
var dl1=document.getElementById("dl1");
var dd=document.createElement("dd");
var tn=document.createTextNode("dd2");
dd.appendChild(tn);
dl1.appendChild(dd);
</script>

4.使用insertBefore方法插入子结点
appendChild方法只能将结点添加到所有的子结点之后,而insertbefore方法则可以将结点插入到指

定的结点之前。
语法:
parentNode.insertBefore(newNode,referenceNode);
其中,parentNode是父检点;newNode是待插入的新结点;referenceNode是父结点中已存在的结点

,新结点将插入到此结点之前。该方法返回新结点的引用。
5.使用replaceChild方法取代子结点
该方法可以将一个结点用另外一个结点来取代
语法:
parentNode.replaceChild(newNode,oldNode);
其中parentNode是父结点;newNode是待插入的结点;oldNode是被取代的结点。该方法返回被取代

了的结点,而此时这个结点已经不存在于文档中。参数 oldNode必须是parentNode的子结点。
6.使用cloneNode方法复制结点
该方法复制一个结点到另外一个位置。
语法:
node.cloneNode(includeChildren);
其中node是待复制的结点,includeChiledren是一个布尔值,表示是否复制子结点。该方法的返回

值是复制得到的新结点。
7.使用removeChild方法删除子结点
该方法可以用来删除一个子结点。
语法:
parentNode.removeChild(childNode);
其中parentNode是父结点,childNode是待删除的子结点。该方法返回被删除的子结点的引用。

表格操作
在DHTML中,一个表格就是一个表格对象,他是由表格行对象构成的,而表格行又是由单元格对象构

成的。所有的行对象以线性的顺序排列于表格对象中,而所有的 单元格也以线性的顺序排列在表格

行对象中。要引用一个表格单元,首先必须获得对表格行对象的引用。
1.创建一个表格对象
示例:
var _table=document.createElement("table");
2.添加一行
添加一行是使用表格对象的insertRow方法。
语法:
table.insertRow(index);
该方法可以新建一行并将其插入到表格的指定索引处。该方法返回对插入行的引用。在新建了一行

后,该表格行对象中没有任何单元格,只有在其中添加了单元格后才能正确显示。
3.添加单元格
添加单元格是使用表格行对象的insertCell方法
语法:
tableRow.insertCell(index);
该方法新建一个单元格,将其插入到表格行的指定索引处。
示例:
//获取容器div的引用
var container=document.getElementById("tableTest");
//创建表格对象
var _table=document.createElement("table");
//设置表格属性
_table.setAttribute("border","1");
_table.setAttribute("borderColor","black");
_table.setAttribute("width","200");
//创建5行
for (var i=0;i<5;i++) {
  var _tr=_table.insertRow(i);
  //创建4列
  for (var j=0;j<4;j++) {
    var _td=_tr.insertCell(j);
    var _tn=document.createTextNode(i.toString()+j.toString());
    _td.appendChild(_tn);
  }
}
//将表格显示与页面
container.appendChild(_table);
4.引用单元格
在创建了单元格之后,除了可以直接获得对其的引用,还可以根据单元格所在的行和列来引用一个

单元格,这是通过表格对象的行集合属性rows和表格行对象的单元格集合属性cells来完成的。例如

引用一个第i行,第j列的单元格可以使用如下的语法:
table.rows.cells[j];
5.使用单元格对象
在获取单元格的引用之后可以对其进行操作。任何元素都可以使用appendChild方法来添加到单元格

中。例如:
var cb=document.createElement("input");
cb.type="checkbox";
_table.rows[0].cells[0].appendChild(cb);
6.删除行和单元格
删除行和单元格
删除行的语法:
table.deleteRow(index);
删除单元格的语法:
tableRow.deleteCell(index);

stm32 Can通讯过滤器寄存器设置(实验验证) 起因:在使用stm32单片机can通讯时,参考手册的介绍与寄存器封装有差别,不好理解怎么去设置寄存器。在参考一些代码时,对怎么去设置过滤器还是难以理解。 解决: 在寄存器封装库中,我们发现CAN过滤器设置寄存器封装有CAN1->sFilterRegister[ x ].FR1 和 CAN1->sFilterRegister[ x ].FR2 两个寄存器,其封装如下:type 阅读详情

相关推荐

FPGA优质开源项目 – UDP万兆光纤以太网通信

本文开源一个FPGA项目:UDP万兆光通信。文章末尾有该工程源码获取方式,有需要的小伙伴可以点赞、分享支持一下~

cjx_csdn的博客 4766

DOM模型使用汇总

 在ajax中,dom模型其实是最核心的结构,是所有ajax开发的基础架构。如果没有dom模型,就没有办法在客户端改变页面的内容,所有的局部刷新、异步请求也就无从实现。熟练掌握dom模型的相关技术,才算真正掌握了ajax开发精髓。在dom模型中,整个文档就是由层次不同的多个结点组成的。可以说结点代表了全部的内容,每个结点都可以看成一棵树的根结点,整个文档是一个递归的结构。因此掌握了结点的用法,也就

网络猪的博客 745

Blender点云渲染实战:用Geometry Nodes快速搞定论文配图(附Cycles渲染技巧)

本文详细介绍了如何利用Blender的Geometry Nodes系统,高效地将三维点云数据转化为高质量的科研论文配图。通过实战步骤,从数据导入、节点化几何处理、材质赋予到Cycles渲染引擎的优化设置,手把手教你制作出专业、美观的可视化图像,助力科研成果展示。

hp777的博客 265

DOM模型的XML文件生成读取

import org.w3c.dom.Document;import org.w3c.dom.Element;import org.w3c.dom.Text;import org.w3c.dom.Node;import org.w3c.dom.NodeList;import org.w3c.dom.NamedNodeMap;import org.w3c.dom.Attr;import java

zengcity的专栏 655

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1942

[PayPal报错]为遵守国际法规,这笔交易已被拒绝。

PayPal报错解决:为遵守国际法规,这笔交易已被拒绝。

qq_39906413的博客 1万+

DOM 中文档节点,文本节点之间的关系

在《javascript高级程序设计》一书中的第十章开篇讲到节点层次。在此我把它的例子拿过来讲一下(按照书中的原文)<html> <head> <title>Sample Page</title> </head> <body> <p>Hello World!</p> </body> </html>文档节点书中有这样一段原话:文档节点是每

苦艾文艺 5159

15、虚拟环境中的数据保护与恢复方案解析

本文深入解析了虚拟环境中两种重要的数据保护与恢复解决方案:RecoverPoint for Virtual Machines(RP4VM)在VxRail上的设计,以及Veeam Backup & Replication(VBR)与VxRail的集成方案。文章详细介绍了RP4VM的网络布局、故障转移场景及其相关问题,以及VBR的架构设计、备份与复制流程、许可证选项及其多平台支持特性。此外,还探讨了RP4VM与VBR结合使用的综合解决方案,以及未来数据保护领域的发展趋势,如智能化管理、云原生集成和零信任架构,为

t4y5u6i7o的博客 95

面试题

1.请描述一下cookies,sessionStorage和localStorage的区别 sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。而localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。 web storage和cookie的区别 Web Storage的概念和cookie相似,区别是

universe的博客 6万+

一文掌握 MongoDB 详细安装与配置(Windows / Linux / macOS 全平台)

本文详细介绍了MongoDB社区版7.0+在Windows、Linux和macOS三大操作系统上的完整安装、配置与安全加固流程。主要内容包括:各平台推荐安装方式(Windows使用MSI安装包、Linux通过官方仓库、macOS通过Homebrew)、基本配置参数说明、服务启动方法以及关键安全措施(如创建管理员用户和启用身份验证)。文章还提供了系统最低要求、下载地址、数据目录设置建议以及生产环境使用注意事项,适合开发、测试及生产环境部署参考。

数据知道的博客 6709

保姆级教程:一步步创建 ABAP Text Table

有朋友反馈,问有没有一个自己动手创建 Text Table 的例子,因为自己没有动手实践过,总觉得心里不踏实。这个行为的语义是,ZAI_TYPE_T 这张表的 AI_TYPE 字段值,不能随便维护,必须是表。然后另一个需要添加的字段是 AI_TYPE 这个字段值对应的文本值,本例笔者采用 SAP 标准的。也是自己创建的,很简单的一个 Data Element,类型为 CHAR,长度为 2.依次给主表的 01,02,03 三个字段值维护对应的描述信息,最后效果如下。按照下面的字段结构,创建另一。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4274

DOM(一)模型中的模型节点

<html>位于网页的顶端 它没有父辈,称之为根节点 1.元素节点(element node) 可以说,整个DOM模型都是由元素节点(element node)组成 比如文本段落元素“<p>”,无序清单的名称“<ul>”,元素节点包含其他元素、 2.文本节点(text node) 例如<h2>中的文本“标题1”,&lt...

weixin_33682719的博客 549

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Dom对象的应用

练习制作简易的当当购物车页面。输入框 prompt。确认框 confirm。警告框 alert。关闭页面 clos。

Zhujjyy的博客 487

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

8.DOM对象和jQuery对象的相互转换和应用

//jQuery对象是使用$("")获取的对象,但不可以使用DOM对象的方法 //使用前需要先把jQuery对象转换为DOM对象 jQuery对象.get(下标) //获取指定下标的DOM对象 jQuery对象.get() //获取DOM对象,如果有多个,则以数组形式存储 jQuery对象[0] //获取指定下标的DOM对象 //转回jQuery对象只需要用$()括起来就可以了 $(DOM对象) //结果为一个jQuery对象 ...

Yang_Ke_Di的博客 970

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

day4JS中DOM对象的具体应用

DOM的基础  Document对象  Element对象  Node对象  innerHTML  事件处理  表单验证 JS中BOM对象 Window History Location Screen 浏览器对象 DOM对象:Document Object Model DOM的介绍 DOM:将文档解析成内存中的树状结构.通过树状结构对文档进行 添加节点 删除节点 修改节点 查找节点...

abc1171655416的博客 196

一个JavaScript DOM对象模型的实际应用案例

DOM(Document Object Model)对象模型在Web开发中有着广泛的应用。以下是一个实际应用案例,展示了如何使用DOM对象模型来动态修改网页内容。

Flask Web 480

JS应用DOM入门:DOM的对象属性

JS应用DOM入门:DOM的对象属性

半亩方塘 1204

014、BOM与DOM对象的应用

Screen屏幕对象 Width:屏幕的宽度 Height:屏幕的高度 availWidth:屏幕的有效宽度(不含任务栏) availHeight:屏幕的有效高度(不含任务栏) colorDepth:色深 <script type="text/javascript"> //实例:测试自己显示屏幕相关信息 var str = "<h2>自己屏幕的相关信息&...

weixin_30432579的博客 131

jquery 应用—— jquery对象和dom对象的相互转化;

// dom对象 转 jquery 对象 var domDemo,jqDemo; var domDemo = document.getElementById('demo'); jqDemo = $(domDemo); console.log(domDemo,jqDemo); // jquery对象 转dom 对象 var d...

weixin_41265663的博客 154

Web APIs基础-DOM对象的应用

dom对象

ADwblj的博客 223

【自学javascript笔记】DOM对象获取元素以及Date()对象的应用——单击按钮显示时间

我们在学习了html与CSS之后一定会产生这样的疑问:我们在平时上网过程中常见的交互效果,比如说“单击按钮显示内容”,这个是怎么做出来的呢?今天我们就来探讨一下,如何实现事件的触发。以上便是如何用js实现一些用户交互事件的方法,主要讲述了什么是事件的三要素,如何获取事件对象(重要),以及如何定义事件执行程序,并给出了应用模版。

qq_51843898的博客 1398

ES6学习——set map数据结构 、 DOM classlist属性、创建对象 、Symbol应用

对象方法就是把对象中的属性,用匿名函数的形式编程方法(之前就有)。

鹿蹊zz的博客 449

【Es6】Set 、map数据结构,对象,symbol的应用,DOM classList 属性

【Es6】Set 、map数据结构,对象,symbol的应用,DOM classList 属性

m0_59505309的博客 436

JS应用DOM入门(2):DOM的对象属性

DOM提供了一套属性用于导航、访问和更新文档内容,其中包括只读类型的属性和可读写类型的属性。  下表是只读类型的属性: DOM对象属性 返 回 值 ...

weixin_30478757的博客 68

JQuery应用实例学习 —— 19 JQuery对象与DOM对象的关系与转换

&lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Document&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h

烟敛寒林的博客 234
上一篇: xml精选
下一篇: dom4j解析xml
ldongwei
博客等级 码龄18年 20粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值