JavaScript HTML DOM 对象

前端必知必会-JavaScript HTML DOM Document对象 本文介绍了JavaScript HTML DOM Document对象的使用,如有问题欢迎私信和评论。 阅读详情

DOMDocument 属性和方法


  最近发现DOMDocument对象很重要,还有XMLHTTP也很重要

注意大小写一定不能弄错.

属性:

 1Attributes     存储节点的属性列表(只读)
 2childNodes     存储节点的子节点列表(只读)
 3dataType     返回此节点的数据类型
 4Definition     以DTD或XML模式给出的节点的定义(只读)
 5Doctype     指定文档类型节点(只读)
 6documentElement     返回文档的根元素(可读写)
 7firstChild     返回当前节点的第一个子节点(只读)
 8Implementation     返回XMLDOMImplementation对象
 9lastChild     返回当前节点最后一个子节点(只读)
10nextSibling     返回当前节点的下一个兄弟节点(只读)
11nodeName     返回节点的名字(只读)
12nodeType     返回节点的类型(只读)
13nodeTypedValue     存储节点值(可读写)
14nodeValue     返回节点的文本(可读写)
15ownerDocument     返回包含此节点的根文档(只读)
16parentNode     返回父节点(只读)
17Parsed     返回此节点及其子节点是否已经被解析(只读)
18Prefix     返回名称空间前缀(只读)
19preserveWhiteSpace     指定是否保留空白(可读写)
20previousSibling     返回此节点的前一个兄弟节点(只读)
21Text     返回此节点及其后代的文本内容(可读写)
22url     返回最近载入的XML文档的URL(只读)
23Xml     返回节点及其后代的XML表示(只读)

方法:

 1appendChild     为当前节点添加一个新的子节点,放在最后的子节点后
 2cloneNode     返回当前节点的拷贝
 3createAttribute     创建新的属性
 4createCDATASection     创建包括给定数据的CDATA段
 5createComment     创建一个注释节点
 6createDocumentFragment     创建DocumentFragment对象
 7createElement     创建一个元素节点
 8createEntityReference     创建EntityReference对象
 9createNode     创建给定类型,名字和命名空间的节点
10createPorcessingInstruction     创建操作指令节点
11createTextNode     创建包括给定数据的文本节点
12getElementsByTagName     返回指定名字的元素集合
13hasChildNodes     返回当前节点是否有子节点
14insertBefore     在指定节点前插入子节点
15Load     导入指定位置的XML文档
16loadXML     导入指定字符串的XML文档
17removeChild     从子结点列表中删除指定的子节点
18replaceChild     从子节点列表中替换指定的子节点
19Save     把XML文件存到指定节点
20selectNodes     对节点进行指定的匹配,并返回匹配节点列表
21selectSingleNode     对节点进行指定的匹配,并返回第一个匹配节点
22transformNode     使用指定的样式表对节点及其后代进行转换
23transformNodeToObject     使用指定的样式表将节点及其后代转换为对象


*************************************************************************************************************************

DOM(文档对象模型)

DOM(文档对象模型)概念的推出,这个API使HTML如虎添翼,但是有些学DHTML的朋友还是有些困挠,只是因为目前的手册的书写不太科学,是按字母

来分的,不便查阅.其实DOM中最关键是要掌握节点与节点之间的关系(between node andnode),想学习DHTML中的DOM千万不要从头到尾地看遍所

有的属性和方法,你有三国时张松的"过目不忘"的本领吗?没有吧,那就听我分析一下:

其实DOM教给我们的就是一个层次结构,你可以理解为一个树形结构,就像我们的目录一样,一个根目录,根目录下有子目录,子目录下还有子

目录……

根节点:


DOM把层次中的每一个对象都称之为节点(NODE),以HTML超文本标记语言为例:整个文档的一个根就是<html>,在DOM中可以使用

document.documentElement来访问它,它就是整个节点树的根节点(ROOT)

子节点:

一般意义上的节点,根节点以下最大子节点就是主文档区<body>了,要访问到body标签,在脚本中应该写:
document.body
body区以内所有的文本及HTML标签都是文档的节点,分别称为文本节点、元素节点(或者叫标签节点),大家知道HTML说到底只是文本而矣,

不论怎么样的网页必然由这两个节点组成,也只能由这两个节点组成

节点之间的关系:

节点之间的关系也是DOM中最重要的一个关节,如何正确地引用到节点对象,一定要清楚节点树各个节点的相互描述方式,在DHTML里,

Javascript脚本就用了各个节点对象的一整套方法和属性去描述另外的节点对象。


节点的绝对引用:
返回文档的根节点
document.documentElement
返回当前文档中被击活的标签节点
document.activeElement
返回鼠标移出的源节点
event.fromElement
返回鼠标移入的源节点
event.toElement
返回激活事件的源节点
event.srcElement

节点的相对引用:(设当前对节点为node)
返回父节点
node.parentNode
node.parentElement
返回子节点集合(包含文本节点及标签节点)
node.childNodes
返回子标签节点集合
node.children
返回子文本节点集合
node.textNodes
返回第一个子节点
node.firstChild
返回最后一个子节点
node.lastChild
返回同属下一个节点
node.nextSibling
返回同属上一个节点
node.previousSibling

节点的各种操作:(设当前的节点为node)

新增标签节点句柄:
document.createElement(sNode) //参数为要新添的节点标签名,例:newnode=document.createElement("div");

1、添加节点:
追加子节点:
node.appendChild(oNode) //oNode为生新增的节点句柄,例:node.appendChild(newnode)
应用标签节点
node.applyElment(oNode,sWhere)//oNode为生新增的节点句柄,sWhere有两个值:outside / inside,加在当前节点外面还是里面
插入节点
inode.insertBefore()
node.insertAdjacentElement()
node.replaceAdjacentText()

2、修改节点:

删除节点
node.remove()
node.removeChild()
node.removeNode()

替换节点
node.replaceChild()
node.replaceNode()
node.swapNode()


2、复制节点:
返回复制复制节点引用
node.cloneNode(bAll)//bAll为布尔值,true / false 是否克隆该节点所有子节点

3、节点信息
是否包含某节点
node.contains()
是否有子节点
node.hasChildNodes()

************************************************************************************************************************

下面为javascript操作xml

<script language="JavaScript">
<!--
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")


//加载文档
//doc.load("b.xml");

//创建文件头
var p = doc.createProcessingInstruction("xml","version='1.0'  encoding='gb2312'");

    //添加文件头
    doc.appendChild(p);

//用于直接加载时获得根接点
//var root = doc.documentElement;

//两种方式创建根接点
//    var root = doc.createElement("students");
    var root = doc.createNode(1,"students","");

    //创建子接点
    var n = doc.createNode(1,"ttyp","");

        //指定子接点文本
        //n.text = " this is a test";
    
    //创建孙接点
    var o = doc.createElement("sex");
        o.text = "男";    //指定其文本

    //创建属性
    var r = doc.createAttribute("id");
        r.value="test";

        //添加属性
        n.setAttributeNode(r);

    //创建第二个属性    
    var r1 = doc.createAttribute("class");
        r1.value="tt";
        
        //添加属性
        n.setAttributeNode(r1);

        //删除第二个属性
        n.removeAttribute("class");

        //添加孙接点
        n.appendChild(o);

        //添加文本接点
        n.appendChild(doc.createTextNode("this is a text node."));

        //添加注释
        n.appendChild(doc.createComment("this is a comment\n"));
    
        //添加子接点
        root.appendChild(n);
    
    //复制接点
    var m = n.cloneNode(true);

        root.appendChild(m);
        
        //删除接点
        root.removeChild(root.childNodes(0));

    //创建数据段
    var c = doc.createCDATASection("this is a cdata");
        c.text = "hi,cdata";
        //添加数据段
        root.appendChild(c);
    
    //添加根接点
    doc.appendChild(root);

    //查找接点
    var a = doc.getElementsByTagName("ttyp");
    //var a = doc.selectNodes("//ttyp");

    //显示改接点的属性
    for(var i= 0;i<a.length;i++)
      {
          alert(a[i].xml);
          for(var j=0;j<a[i].attributes.length;j++)
          {
              alert(a[i].attributes[j].name);
          }
      }

    //修改节点,利用XPATH定位节点
    var b = doc.selectSingleNode("//ttyp/sex");
    b.text = "女";

    //alert(doc.xml);

    //XML保存(需要在服务端,客户端用FSO)
    //doc.save();
    
    //查看根接点XML
    if(n)
      {
          alert(n.ownerDocument.xml);
      }

//-->
</script> 

DOM本质解析:从HTML到JS对象树的完整映射 DOM(文档对象模型)是浏览器将HTML源码解析为内存中可操作JavaScript对象的核心机制,其本质是HTML文本到结构化JS对象树的运行时映射。它遵循词法分析→语法分析→DOM树构建三阶段原理,生成包含Element、Text、Comment等节点类型的动态数据结构。这一机制赋予前端对网页元素进行增删改查、事件绑定与样式控制的技术能力,广泛应用于交互开发、动态内容渲染、表单验证及Web组件实现。理解DOM节点关系、访问路径与生命周期,是解决null报错、事件委托失效、动态内容更新异常等高频工程问题的基 阅读详情

相关推荐

浅谈JavaScript模拟$(HTML字符串)实现创建DOM对象

JavaScript里动态创建标准DOM对象一般使用:document.createElement()方法。 但在实际使用过程中,可能会希望直接根据HTML字符串创建DOM节点,模拟$(HTML字符串)创建DOM对象的方法。 1、思路: ① 用document.createElement()方法创建一个div元素; ② 用innerHTML来给div元素插入HTML字符串; ③ 用div

筱葭的博客 5145

xml节点操作(javascript)

******************************************************************************************************************** DOMDocument 属性和方法   最近发现DOMDocument对象很重要,还有XMLHTTP也很重要注意大小写一定不能弄错.属性:  

5110

【UE5_蓝图】实时音频采集与动态WAV文件保存实战指南

本文详细介绍了在UE5中使用蓝图实现实时音频采集与动态WAV文件保存的完整流程。从插件配置、录音框架搭建到动态文件名生成和音频参数优化,提供了实用技巧和常见问题解决方案,特别适合需要快速实现音频采集功能的开发者。

weixin_29009669的博客 408

JavaScript操作XML

JavaScript操作XML (一)JavaScript操作XML是通过XML DOM来完成的。 那么什么是XML DOM呢? XML DOM 是:用于 XML 的标准对象模型 用于 XML 的标准编程接口 中立于平台和语言 W3C 的标准XML DOM 定义了所有XML 元素的对象和属性,以及访问它们的方法(接口)。 也就是说: XML DOM 是用于查询、添加、修改、删除XML 元素

WenwenFighting1314的博客 1064

Android14_MTK调试LCD屏功能

android14 MTK平台调试LCD屏

m0_37786046的博客 1472

卡方分布的前世今生:一个统计概念的演化史

本文追溯了卡方分布从19世纪末的理论雏形到现代统计推断核心工具的发展历程。从Karl Pearson的数学奠基到Ronald Fisher的理论完善,卡方分布在医学研究、社会科学和机器学习等领域展现出广泛应用。文章通过代码示例和性质分析,揭示了这一统计概念如何持续推动数据科学创新。

weixin_29251567的博客 391

XmlAttribute

XmlAttribute类用于描述XML 数据中的元素属性。因为属性的编辑和设置一般使用XmlElement类提供的方法来实现,所以,XmlAttribute类设计的主要目的是为了描述元素属性这样一种XML数据结构。 XMLAttribute类和其他的XmlNode派生类相比,具有一些特殊的地方:该类虽然也是继承于XmlNode ,但是由于该类从属于XmlElement类,不是单独存在的节点——

中辽普坦的专栏 1万+

LAMMPS后处理—如何构建二维云图-接触角呢?

计算接触角

Rockyoung 6523

[JavaScript] 兼容IE、FireFox、Chrome等浏览器的xml处理函数(xml同步/异步加载、xsl转换、selectSingleNode、selectNodes)...

  在编写处理xml的网页时,经常为浏览器兼容性头疼。于是我将常用的xml操作封装为函数。经过一段时间的改进,现在已经很稳定了,用起来很舒服。     函数有—— xml_loadFile:xml同步/异步加载。 xml_transformNode:xsl转换。 xml_text:节点的文本。 selectSingleNode:根据XPath选择单个节点。 selectNodes:根...

weixin_33755847的博客 314

手把手教你学Simulink——基于新型电力电子拓扑与宽禁带器件的电网系统场景实例:GaN HEMT器件在高频逆变器中的开关特性建模

本文介绍了基于Simulink和Simscape Electrical的GaN HEMT高频逆变器建模方法。通过构建半桥拓扑电路,详细说明了GaN器件参数设置(以EPC2045为例)、专用驱动电路设计(含负压关断和米勒钳位)以及开关瞬态过程仿真(配置1ns步长捕捉MHz级特性)。重点分析了开关损耗计算和寄生导通风险,并对比了GaN与Si MOSFET的性能差异。案例展示了如何优化驱动参数和PCB布局,验证了GaN器件在1MHz高频应用中的优势(开关损耗仅5μJ)。最后总结了GaN在数据中心电源、无线充电等领

MHD0815的博客 403

YOLOv8 智能交通违章检测 - 压线/越线行驶检测详解

本文提出了一种基于YOLOv8的智能交通违章检测方案,重点解决车辆压线/越线行驶的识别问题。系统采用多技术融合方案:YOLOv8检测车辆、ByteTrack跟踪轨迹、传统或深度学习方法识别车道线,并通过几何计算判断车辆是否违规跨越实线。文章详细介绍了技术难点(如车道线分类、透视变形处理)、判定流程、系统架构和核心代码实现,包括车道线检测、违章逻辑判断和可视化模块。同时指出了现有方案的局限性,建议通过引入逆透视变换和专用车道线分割模型来提升准确率。该纯视觉方案具有低成本、易部署的特点,适用于智能交通监控场景。

u010117029的博客 175

XML中的属性:attribute

在.XSD文件中添加属性约束必须是在&lt;complex&gt;&lt;/complex&gt; 中间添加属性约束代码:&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified

Heihei 's note 1万+

【蓝牙协议栈】【BLE】详解蓝牙BLE连接建立过程

advertiser。发出广播的设备observer或者scanner。可以扫描广播的设备initiator。能发起连接的设备master或者central。连接成功后的主设备,即主动发起packet的设备slave或者peripheral。连接成功后的从设备,即被动回传packet的设备图11通过时间把observer,initiator和central串起来了,其实这三个角色是相互独立的,也就是说一个设备可以只支持observer角色,而不支持initiator和central角色。

风云说通信 2521

JavaScript HTML DOM 与js 对象 复习

整个DOM 简单的形容就是 所有的开标签,例如: 文档->html->body->div->ul->li->p->a 逐级下来。不包括</a>这种的。 通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HT...

148

LVGL iPhone Duo 开合过渡

环境:LVGL 9.x(需要软件模糊),窗口建议 1280×800。界面文案英文(默认 Montserrat 无 CJK)。

摸鱼专家 149

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

原生js获取document_JavaScript获取html中DOM节点Document对象

不依赖其他类库,纯js获取html中DOM节点Document对象的方法统计,包含简单示例,方便学习和查阅用 js 获取 html 中 DOM 节点 Document 对象 方法有很多,一时半会记不住,每次网上查找费事,于是做个记录方便查阅。具体看以下内容一、IDDom指定ID的第一个对象的引用。示例:ID Domvar test1 = document.getElementById("te...

weixin_39942318的博客 339

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

html调用js中对象参数,javascript 获取HTML DOM对象八种方式

获取DOM对象有7种方式:1.document.getElementById('id');//返回结果是一个对象,如果存在两个标签拥有相同id,则返回第一个标签对象。2.document.getElementsByTagName('标签名');//返回结果是一个对象集合,以数组形式放在一起3.document.getElementsByName('标签name属性的值');//返回结果是一个对象集...

weixin_34297334的博客 768

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

怎样用js实现html全站搜索,JavaScript_Dom对象全实例讲解

一.简单介绍Dom是W3C-万维网联盟的标准,它定义了访问HTML和XML文档的标准。W3C文档对象模型(DOM)是中立与平台和语言的接口,它允许程序和脚本动态的访问和更新文档的内容、结构和样式的。W3C将DOM分为3个不同的部分:1.核心DOM:针对任何结构化文档的标准模型;2.XML DOM部分:针对XML文档的标准模型;3.HTML DOM部分:针对HTML文档的标准模型;XML DOM:定...

weixin_34551614的博客 865

js变量html属性,JavaScript变量Dom对象的所有属性

DOM对象的HTML:Disable State1,遍历DOM对象所具有的属性(全部,不管是否在HTML tag中是否设置)Disable Statevar obj = document.getElementById("btnToggleState");var s = "";for (var elem in obj) {s += elem + "\n";}alert(s);结果:2.遍历DOM对象...

weixin_42363022的博客 253

前端技术(JavaScript)学习笔记(四)HTML事件、DOM对象、BOM对象

1、HTML事件 html事件,是html元素提供的响应外部动作的唯一途径,也就是说,html的事件可以响应外部动作。比如你希望当鼠标移动到div元素区域内时弹出一个一个消息框,或者鼠标离开div区域后也弹出一个消息框即需要html事件支持才能完成,若html没有事件支持的话,这个需求是无法完成的。 &lt;div onmouseover="alert('进入');" onmouseout...

dl0246的博客 1075

【JS】操作HTML DOM对象

引言HTML DMO将HTML文档表示为一棵DOM对象树,每个节点对象表示文档的特定部分,因此通过修改这些对象,就可以动态改变页面元素的属性;而通过添加、删除、替换、复制特定的节点,就可以为页面动态添加、删除、替换、复制相应的页面元素。处理元素的属性(1)getAttribute(name):访问元素属性(2)setAttribute(name,value):修改元素属性(3)removeAttr...

weixin_39068791的博客 448

javascript对象、DOM对象、Browser对象、HTML对象

在前端中的一些对象的描述:1、JavaScript对象:8个对象Number    String     Boolean    Array     Date    RegExp   Math    全局属性和函数2、Browser对象:6个对象window对象      screen对象    location对象     history对象  navigator对象   存储对象(localSt...

感恩、奋进、自信 2132

报表软件JS开发引用HTML DOM的windows对象

在报表软件在JavaScript中,我们可以通过访问并处理所有的HTML DOM对象(windows对象、location对象、document对象),动态地修改网页。

Leo的博客 6613

javascript HTML DOM option对象

javascript HTML DOM option对象总结   一基础理解: var e = document.getElementById("selectId"); e. options= new Option("文本","值") ; //创建一个option对象,即在标签中创建一个或多个文本 //options是个数组,里面可以存放多个文本这样的标签 1:o

我行我速 606

(13)JavaScript之[HTML DOM元素][JS对象]

元素 1 /** 2 * HTML DOM 元素(节点)*/ 3 4 //创建新的HTML元素 5 var para = document.createElement('p'); 6 var node = document.createTextNode('这是一个新段落'); 7 para.appendChild(node); 8 9 var box =...

weixin_30830327的博客 67
上一篇: JS之Window对象
下一篇: 打败 IE 的葵花宝典:CSS Bug Table
HackProgramer
博客等级 码龄12年 255粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值