DOMDocument属性与方法
- 格式:doc
- 大小:57.50 KB
- 文档页数:7
JS的Document属性和方法docum ent.title //设置文档标题等价于HTML的title标签docum ent.bgColor //设置页面背景色docum ent.fgColor //设置前景色(文本颜色)docum ent.linkColor //未点击过的链接颜色docum ent.alinkColor //激活链接(焦点在此链接上)的颜色docum ent.vlinkColor //已点击过的链接颜色docum ent.URL //设置URL属性从而在同一窗口打开另一网页docum ent.fileCreatedDate //文件建立日期,只读属性docum ent.fileModifiedDate //文件修改日期,只读属性docum ent.charset //设置字符集简体中文:gb2312docum ent.fileSize //文件大小,只读属性docum ent.cookie //设置和读出cookie ———————————————————————常用对象方法docum ent.write() //动态向页面写入内容docum ent.createElem ent(Tag) //创建一个ht ml标签对象docum ent.getElement ById(ID) //获得指定ID值的对象docum ent.getElementsByName(Name) //获得指定Name值的对象docum ent.body.appendChild(oTag) ———————————————————————body-主体子对象docum ent.body //指定文档主体的开始和结束等价于body>/body> docum ent.body.bgColor //设置或获取对象后面的背景颜色docum ent.body.link //未点击过的链接颜色docum ent.body.alink //激活链接(焦点在此链接上)的颜色docum ent.body.vlink //已点击过的链接颜色document.body.text //文本色docum ent.body.innerText //设置body>…/body>之间的文本docum ent.body.innerHTML //设置body>…/body>之间的HTML代码docum ent.body.topMargin //页面上边距docum ent.body.leftMargin //页面左边距docum ent.body.rightMargin //页面右边距docum ent.body.bottom Margin //页面下边距docum ent.body.background //背景图片docum ent.body.appendChild(oTag) //动态生成一个HTML对象常用对象事件docum ent.body.onclick=”func()” //鼠标指针单击对象是触发docum ent.body.onmouseover=”func()” //鼠标指针移到对象时触发docum ent.body.onmouseout=”func()” //鼠标指针移出对象时触发———————————————————————location-位置子对象docum ent.location.hash // #号后的部分docum ent.location.host // 域名+端口号//好像返回的是主机名localhost,没有返回端口号docum ent.location.hostnam e // 域名docum ent.location.href // 完整URLdocum ent.location.pathname // 目录部分docum ent.location.port // 端口号docum ent.location.protocol // 网络协议(http:)docum ent.location.search // ?号后的部分docum eny.location.reload() //刷新网页docum ent.location.reload(URL) //打开新的网页docum ent.location.assign(URL) //打开新的网页docum ent.location.replace(URL) //打开新的网页———————————————————————selection-选区子对象docum ent.selection例如:<div>请选中这里的部分文字。
php生成xml简单实例代码使用PHP DOMDocument创建动态XML文件当处理基于XML应用程序时,开发者经常需要建立XML编码数据结构。
例如,Web中基于用户输入的XML状态模板,服务器请求XML语句,以及基于运行时间参数的客户响应。
尽管XML数据结构的构建比较费时,但如果使用成熟的PHP DOM应用程序接口,一切都会变得简单明了。
本文将向你介绍PHP DOM应用程序接口的主要功能,演示如何生成一个正确的XML完整文件并将其保存到磁盘中。
∙创建文档类型声明一般而言,XML声明放在文档顶部。
在PHP中声明十分简单:只需实例化一个DOM文档类的对象并赋予它一个版本号。
查看程序清单A:代码如下:view sourceprint?<?php// create doctype$dom= new DOMDocument("1.0");// display document in browser as plain text// display document in browser as plain text// for readability purposesheader("Content-Type: text/plain");// save and display treeecho$dom->saveXML();?>请注意DOM文档对象的saveXML()方法。
稍后我再详细介绍这一方法,现在你只需要简单认识到它用于输出XML文档的当前快照到一个文件或浏览器。
在本例,为增强可读性,我已经将ASCII码文本直接输出至浏览器。
在实际应用中,可将以text/XML头文件发送到浏览器。
如在浏览器中查看输出,你可看到如下代码:view sourceprint?<?xml version="1.0"?>∙添加元素和文本节点XML真正强大的功能是来自其元素与封装的内容。
php中DOMDocument简单⽤法⽰例代码(XML创建、添加、删除、修改)共分四个⽂件,分别是创建、增加、删除、修改四个功能,变量都是写死的,改⼀改⽤$_POST⽅式接收就可以⽤了//index.php 创建功能复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '1';$_title = 'title1';$_content = 'content1';$_author = 'author1';$_sendtime = 'time1';$_htmlpatch = '1.html';$doc = new DOMDocument('1.0', 'utf-8');$doc -> formatOutput = true;$root = $doc -> createElement('root');//新建节点$index = $doc -> createElement('index');//新建节点$url = $doc -> createAttribute('url');//新建属性$patch = $doc -> createTextNode($_htmlpatch);//新建TEXT值$url -> appendChild($patch);//将$patch⽂本设为$url属性的值$id = $doc -> createAttribute('id');$newsid = $doc -> createTextNode($_id);$id -> appendChild($newsid);$title = $doc -> createAttribute('title');$newstitle = $doc -> createTextNode($_title);$title -> appendChild($newstitle);$content = $doc -> createTextNode($_content);//节点值$author = $doc -> createAttribute('author');$newsauthor = $doc -> createTextNode($_author);$author -> appendChild($newsauthor);$sendtime = $doc -> createAttribute('time');$newssendtime = $doc -> createTextNode($_sendtime);$sendtime -> appendChild($newssendtime);$index -> appendChild($id);//将$id设为index节点的属性,以下类同$index -> appendChild($title);$index -> appendChild($content);$index -> appendChild($url);$index -> appendChild($author);$index -> appendChild($sendtime);$root -> appendChild($index);//设置index为root字节点$doc -> appendChild($root);//设置root为跟节点$doc -> save($xmlpatch);//保存⽂件echo $xmlpatch . ' has create success';?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作</title></head><body></body></html>//add.php 增加功能(跟index.php⽂件差不多,主要就是加个load载⼊跟 $root = $doc -> documentElement获得跟节点复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$_title = 'title2';$_content = 'content2';$_author = 'author2';$_sendtime = 'time2';$_htmlpatch = '2.html';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;//获得根节点(root)$index = $doc -> createElement('index');$url = $doc -> createAttribute('url');$patch = $doc -> createTextNode($_htmlpatch);$url -> appendChild($patch);$id = $doc -> createAttribute('id');$newsid = $doc -> createTextNode($_id);$id -> appendChild($newsid);$title = $doc -> createAttribute('title');$newstitle = $doc -> createTextNode($_title);$title -> appendChild($newstitle);$content = $doc -> createTextNode($_content);$author = $doc -> createAttribute('author');$newsauthor = $doc -> createTextNode($_author);$author -> appendChild($newsauthor);$sendtime = $doc -> createAttribute('time');$newssendtime = $doc -> createTextNode($_sendtime);$sendtime -> appendChild($newssendtime);$index -> appendChild($id);$index -> appendChild($title);$index -> appendChild($content);$index -> appendChild($url);$index -> appendChild($author);$index -> appendChild($sendtime);$root -> appendChild($index);$doc -> save($xmlpatch);echo $_id . ' has been added in ' . $xmlpatch;} else {echo 'xml file loaded error!';}><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-添加</title></head><body></body></html>//edit.php 修改功能(这⾥只修改title属性值跟节点值)复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$_title = 'has been changed';$_content = 'has been changed';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;$elm = $root -> getElementsByTagName('index');$checkexist = 0;foreach ($elm as $new) {if($new -> getAttribute('id') == $_id) {$new -> setAttribute('title', $_title);$new -> nodeValue = $_content;//修改节点值,真是太意外了,没想到跟JS⼀样直接能赋值...//$new -> removeChild($new -> nodevalue);$checkexist = 1;}}if($checkexist == 0) {echo $_id . ' is not found in ' . $xmlpatch;} else {$doc -> save($xmlpatch);echo $_id . ' has been changed';}} else {echo 'xml file loaded error!';}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-修改</title></head><body></body></html>//del.php 删除功能复制代码代码如下:<?php$xmlpatch = 'index.xml';$_id = '2';$doc = new DOMDocument();$doc -> formatOutput = true;if($doc -> load($xmlpatch)) {$root = $doc -> documentElement;$elm = $root -> getElementsByTagName('index');foreach ($elm as $new) {if($new -> getAttribute('id') == $_id) {if($root -> removeChild($new)) {echo $_id . ' has been deleted';} else {echo $_id . ' delete failed';}}}$doc -> save($xmlpatch);} else {echo 'xml file loaded error!';}?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>XML操作-删除</title></head><body></body></html>总结⼀下,创建跟添加主要⽤的就是create跟appendChild,create后边跟Element就是创建节点,跟Attribute就是创建属性,TextNode就是创建值,然后appendChild就是设置从属关系,这么⼀看⾮常简单。
dom总结DOM(Document Object Model)是一种用于表示和操作HTML、XML和SVG文档的标准编程接口。
它将文档表示为一个树形结构,其中每个节点都是一个对象,可以通过编程方式访问和操作。
DOM的主要作用是提供一种标准的方式来访问和操作文档的内容和结构。
它允许开发人员使用JavaScript等编程语言来动态地修改文档的内容和样式,从而实现交互式Web应用程序。
DOM的树形结构由多个节点组成,每个节点都有一个类型和一组属性。
节点类型包括元素节点、文本节点、注释节点等。
元素节点表示HTML或XML文档中的标签,文本节点表示标签中的文本内容,注释节点表示HTML或XML文档中的注释。
DOM提供了一组API来访问和操作文档的节点。
这些API包括getElementById、getElementsByTagName、getElementsByClassName等方法,它们可以用于查找文档中的特定节点。
此外,DOM还提供了一组方法来修改文档的内容和样式,例如createElement、appendChild、setAttribute等方法。
DOM的优点在于它提供了一种标准的方式来访问和操作文档的内容和结构。
这使得开发人员可以使用JavaScript等编程语言来动态地修改文档的内容和样式,从而实现交互式Web应用程序。
此外,DOM还具有跨平台和跨浏览器的优势,因为它是一个标准的编程接口,可以在不同的浏览器和操作系统上使用。
DOM是Web开发中非常重要的一个概念,它提供了一种标准的方式来访问和操作文档的内容和结构。
开发人员可以使用JavaScript 等编程语言来动态地修改文档的内容和样式,从而实现交互式Web 应用程序。
DOM的跨平台和跨浏览器的优势使得它成为Web开发中不可或缺的一部分。
dom对象常⽤的属性和⽅法有哪些?dom对象常⽤的属性和⽅法有哪些?⼀、总结⼀句话总结:1、document属性和⽅法:document的属性有head,body之类,⽅法有各种获取element的⽅法2、element的属性和⽅法:属性⽐如style,innerHTML和固有属性,⽅法⽐如各种动态操作元素,⽐如createElement,还有操作属性的set、get、remove、create解Attribute3、attribute的属性和⽅法:有点包含在element⾥⾯的感觉1、我们熟知location是window的属性或者说对象,那么document对象有location属性么?解答:window有location对象,document同样有location对象,2、如何获取⼀个html的⽂档声明?解答:document.doctype;//可以知道⽂档声明,如果没有return null;这⾥是<!DOCTYPE html>3、⼀个有如下 <!DOCTYPE html>⽂档声明的html⽂档,它的⽂档声明的名字是什么?解答:html4、如何获取⼀个html的head部分?解答:document.head//很明显选取head节点.就是<head></head>这段5、如何获取⼀个html的body部分?解答:document.body//选取body节点.6、如何获取⼀个⽂档的⽂档声明的名字?解答://知道⽂档声明的名字.7、document的location属性是来⼲嘛的?解答:ocation⼀般主要是⽤来获取地址。
8、如何获取⼀个⽂档当前的地址?解答:document.location.href//获取当前地址9、给⽂档重新分配地址的三种⽅法是哪三种?10、innerText和innerHTML的区别是什么(两点区别)?解答:⼀个是获取⽂本,⼀个是获取标签。
DOM节点的属性和⽅法DOMDOM 是 JavaScript 操作⽹页的接⼝,全称为“⽂档对象模型”(Document Object Model)。
它的作⽤是将⽹页转为⼀个 JavaScript 对象,从⽽可以⽤脚本进⾏各种操作(⽐如增删内容)。
它只是⼀个接⼝规范,可以⽤各种语⾔实现。
所以严格地说,DOM 不是 JavaScript 语法的⼀部分,但是 DOM 操作是 JavaScript 最常见的任务,离开了 DOM,JavaScript 就⽆法控制⽹页。
另⼀⽅⾯,JavaScript 也是最常⽤于 DOM 操作的语⾔。
节点DOM 的最⼩组成单位叫做节点(node)。
⽂档的树形结构(DOM 树),就是由各种不同类型的节点组成。
每个节点可以看作是⽂档树的⼀⽚叶⼦。
节点的类型有七种。
Document:整个⽂档树的顶层节点DocumentType:doctype标签(⽐如<!DOCTYPE html>)Element:⽹页的各种HTML标签(⽐如<body>、<a>等)Attribute:⽹页元素的属性(⽐如class="right")Text:标签之间或标签包含的⽂本Comment:注释DocumentFragment:⽂档的⽚段浏览器提供⼀个原⽣的节点对象Node,上⾯这七种节点都继承了Node,因此具有⼀些共同的属性和⽅法。
节点树所有的节点就好像组成了⼀棵树,⽽document节点就代表整个树也就是整个⽂档。
⽂档的第⼀层有两个节点,第⼀个是⽂档类型节点(<!doctype html>),第⼆个是 HTML ⽹页的顶层容器标签<html>。
后者构成了树结构的根节点(root node),其他 HTML 标签节点都是它的下级节点。
除了根节点,其他节点都有三种层级关系。
⽗节点关系(parentNode):直接的那个上级节点⼦节点关系(childNodes):直接的下级节点同级节点关系(sibling):拥有同⼀个⽗节点的节点DOM 提供操作接⼝,⽤来获取这三种关系的节点。
php domdocument用法PHP domdocument用法创建DOM对象•使用new DOMDocument()可以创建DOM对象。
加载XML文档•使用load()或loadXML()方法可以加载XML文档,获取DOM对象的根元素。
load()方法•load($filename)方法可以加载指定的XML文档文件。
•例如:$dom->load('')可以加载名为的XML文档。
loadXML()方法•loadXML($xmlstring)方法可以加载XML字符串作为XML文档。
•例如:$xml ="<root><element>value</element></root>";和$dom->loadXML($xml);可以将$xml字符串加载为XML文档。
创建元素和属性•使用DOM对象的createElement()方法可以创建新的元素节点。
•使用DOM对象的createAttribute()方法可以创建新的属性节点。
createElement()方法•createElement($name, [$value])方法可以创建指定名称的元素节点。
•可选参数$value指定元素的文本内容。
•例如:$element = $dom->createElement('tag', 'value');可以创建一个名为tag的元素节点,内容为value。
createAttribute()方法•createAttribute($name)方法可以创建指定名称的属性节点。
•例如:$attribute = $dom->createAttribute('attr');可以创建一个名为attr的属性节点。
添加元素和属性•使用DOM对象的appendChild()方法可以将元素节点添加到其他元素节点的子节点列表中。
JS操作DOM元素属性和方法JavaScript是一种强大的脚本语言,它可以通过操作DOM(Document Object Model)来改变网页的结构和内容。
在JavaScript中,我们可以使用一些属性和方法来操作DOM元素。
1.获取DOM元素在JavaScript中,我们可以使用getElementById、getElementsByClassName、getElementsByTagName等方法来获取DOM元素。
这些方法返回一个NodeList对象,通过索引来访问其中的元素。
2.修改DOM元素的属性通过JavaScript,我们可以修改DOM元素的属性。
比如,使用setAttribute方法可以设置元素的属性值,使用getAttribute方法可以获取元素的属性值。
3.修改DOM元素的样式JavaScript也可以修改DOM元素的样式。
通过style属性,我们可以修改元素的样式属性,比如颜色、字体大小、背景颜色等。
4.添加和删除DOM元素使用JavaScript,我们可以动态地添加和删除DOM元素。
createElement方法用于创建新的元素节点,而appendChild方法则可以将新的元素节点插入到指定的父元素中。
另外,removeChild方法可以删除指定的子元素。
5.修改DOM元素的内容JavaScript可以通过innerHTML属性来修改DOM元素的内容。
可以直接将HTML代码或文本赋值给innerHTML属性,从而改变元素的显示内容。
6.绑定事件处理程序通过JavaScript,我们可以为DOM元素绑定事件处理程序。
可以通过addEventListener方法来监听元素的事件,比如点击事件、鼠标移动事件等。
当事件触发时,会执行对应的处理函数。
7.访问和修改DOM元素的子节点通过childNodes属性,我们可以访问DOM元素的子节点。
childNodes返回一个数组,包含元素的所有子节点。
DOM的官方定义DOM Document Object Model 文档对象模型。
DOM的官方定义:W3C的DOM,可以使程序或脚本(JS或AS、JScript),动态的访问或操作文档的内容、结构、样式。
DOM只是一个标准,就是操作网页的标准。
而这个标准(模型)在浏览器中,以“对象”的方式实现。
DOM的分类●核心DOM:提供了操作HTML文档(显示)或XML文档(存储数据)的公共的属性和方法。
●HTMLDOM:针对HTML文档,提供的专有的属性和方法。
●XMLDOM:针对XML文档,提供的专有的属性和方法。
●EventDOM:事件DOM,提供了很多的常用事件。
●CSSDOM:提供了操作CSS的一个接口。
HTML节点树DOM中节点的类型:●document文档节点:代表整个网页,document文档节点不对应标记。
是访问文档中各元素的起点。
●element元素节点:元素节点对应于网页中的各标记。
●attribute属性节点:每个元素都有若干个属性。
●text文本节点:文本节点是最底层节点。
核心DOM公共属性和方法●nodeName:节点名称。
●nodeV alue:节点的值。
●firstChild:第一个子节点。
●lastChild:最后一个子节点。
●parentNode:父节点。
●childNodes:子节点列表,是一个数组。
节点访问为什么,document.firstChild找到的不是HTML节点呢?DOM是针对HTML4.01开发的。
我们现在是XHTML1.0。
所以,要想使用核心DOM中的属性和方法,必须去掉DTD类型定义。
为什么,node_body.firstChild找不到table节点?在Firefox下,会把空格或换行,当成一个文本节点。
因此,所有标记之间的空格和换行,都去掉。
查找html节点的方法●document.firstChild●document.documentElement(兼容性较好)查找body节点的方法●stChild●document.body(推荐使用)节点属性1、getAttribute()——获取属性的值●描述:获取节点属性的值。
dom基本概念DOM基本概念DOM(Document Object Model)是一种用于处理HTML和XML文档的编程接口。
它将文档表示为一个树形结构,其中每个节点都是一个对象,每个对象都有其自身的属性和方法。
DOM的基本概念包括节点、元素、属性、文本、注释、文档对象等。
节点节点是DOM中最基本的单位,它可以是元素、属性、文本、注释等。
每个节点都有其自身的类型、名称、值等属性。
节点之间可以存在父子关系、兄弟关系等。
在DOM中,节点可以通过节点类型来进行分类,例如元素节点、属性节点、文本节点等。
元素元素是DOM中的一种节点类型,它表示HTML或XML文档中的标签。
每个元素都有其自身的标签名、属性、子元素等。
在DOM中,元素节点可以通过标签名来进行访问,例如document.getElementsByTagName()方法可以获取文档中指定标签名的所有元素。
属性属性是DOM中的一种节点类型,它表示HTML或XML文档中的属性。
每个属性都有其自身的名称和值。
在DOM中,属性节点可以通过元素节点来进行访问,例如element.getAttribute()方法可以获取元素节点的指定属性值。
文本文本是DOM中的一种节点类型,它表示HTML或XML文档中的文本内容。
每个文本节点都有其自身的文本值。
在DOM中,文本节点可以通过元素节点来进行访问,例如element.firstChild.nodeValue 可以获取元素节点的文本内容。
注释注释是DOM中的一种节点类型,它表示HTML或XML文档中的注释内容。
每个注释节点都有其自身的注释值。
在DOM中,注释节点可以通过元素节点来进行访问,例如element.childNodes可以获取元素节点的所有子节点,其中包括注释节点。
文档对象文档对象是DOM中的一种节点类型,它表示整个HTML或XML文档。
文档对象是DOM树的根节点,它包含了整个文档的所有元素、属性、文本、注释等节点。
最近发现DOMDocument对象很重要,还有XMLHTTP也很重要注意大小写一定不能弄错.属性:1Attributes 存储节点的属性列表(只读)2childNodes 存储节点的子节点列表(只读)3dataType 返回此节点的数据类型4Definition 以DTD或XML模式给出的节点的定义(只读)5Doctype 指定文档类型节点(只读)6documentElement 返回文档的根元素(可读写)7firstChild 返回当前节点的第一个子节点(只读)8Implementation 返回XMLDOMImplementation对象9lastChild 返回当前节点最后一个子节点(只读)10nextSibling 返回当前节点的下一个兄弟节点(只读)11nodeName 返回节点的名字(只读)12nodeType 返回节点的类型(只读)13nodeTypedV alue 存储节点值(可读写)14nodeV alue 返回节点的文本(可读写)15ownerDocument 返回包含此节点的根文档(只读)16parentNode 返回父节点(只读)17Parsed 返回此节点及其子节点是否已经被解析(只读)18Prefix 返回名称空间前缀(只读)19preserveWhiteSpace 指定是否保留空白(可读写)20previousSibling 返回此节点的前一个兄弟节点(只读)21Text 返回此节点及其后代的文本内容(可读写)22url 返回最近载入的XML文档的URL(只读)23Xml 返回节点及其后代的XML表示(只读)方法:1appendChild 为当前节点添加一个新的子节点,放在最后的子节点后2cloneNode 返回当前节点的拷贝3createAttribute 创建新的属性4create视频教程'>cdA TASection 创建包括给定数据的CDA TA段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.bodybody区以内所有的文本及HTML标签都是文档的节点,分别称为文本节点、元素节点(或者叫标签节点),大家知道HTML说到底只是文本而矣,不论怎么样的网页必然由这两个节点组成,也只能由这两个节点组成节点之间的关系:节点之间的关系也是DOM中最重要的一个关节,如何正确地引用到节点对象,一定要清楚节点树各个节点的相互描述方式,在DHTML里,javascript脚本就用了各个节点对象的一整套方法和属性去描述另外的节点对象。
节点的绝对引用:返回文档的根节点document.documentElement返回当前文档中被击活的标签节点document.activeElement返回鼠标移出的源节点event.fromElement返回鼠标移入的源节点event.toElement返回激活事件的源节点event.srcElement节点的相对引用:(设当前对节点为node)返回父节点node.parentNodenode.parentElement返回子节点集合(包含文本节点及标签节点)node.childNodes返回子标签节点集合node.children返回子文本节点集合node.textNodes返回第一个子节点node.firstChild返回最后一个子节点stChild返回同属下一个节点node.nextSibling返回同属上一个节点node.previousSibling节点的各种操作:(设当前的节点为node)新增标签节点句柄:document.createElement(sNode) //参数为要新添的节点标签名,例:newnode=document.createElement("css.shtml' target='_blank' title = 'div视频教程'>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("c lass");//添加孙接点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.createCDA TASection("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);}}//修改节点,利用XPA TH定位节点var b = doc.selectSingleNode("//ttyp/sex");b.text = "女";//alert(doc.xml);//XML保存(需要在服务端,客户端用FSO)//doc.save();//查看根接点XMLif(n){alert(n.ownerDocument.xml);}//--></script>。