最近发现DOMDocument对象很重要,XMLHTTP也是。
注意案例。
属性:
1属性存储节点的属性列表(只读)
2 2个子节点存储节点的子节点列表(只读)
3dataType返回该节点的数据类型。
4定义在DTD或XML模式中给定的节点定义(只读)
5Doctype指定文档类型节点(只读)
6documentElement返回文档的根元素(读/写)
7firstChild返回当前节点的第一个子节点(只读)
8实现返回一个XMLDOMImplementation对象。
9lastChild返回当前节点的最后一个子节点(只读)
10返回当前节点的下一个同级节点(只读)
11nodename返回节点的名称(只读)
12nodeType返回节点的类型(只读)
13nodeTypedValue存储节点值(读/写)
14nodeValue返回节点的文本(读/写)
15ownerDocument返回包含此节点的根文档(只读)
16parentNode返回父节点(只读)
17Parsed返回此节点及其子节点是否已被解析(只读)
18Prefix返回名称空间前缀(只读)
19preserveWhiteSpace指定是否保留空白(读/写)
20previousSibling返回该节点的上一个同级(只读)
21Text返回该节点及其后代的文本内容(读/写)
22url返回最近加载的XML文档的url(只读)
23Xml返回节点及其后代的Xml表示(只读)
方法:
1appendChild向当前节点添加一个新的子节点,并将其放在最后一个子节点之后。
2cloneNode返回当前节点的副本。
3createAttribute创建新属性
4createCDATASection创建一个包含给定数据的CDATA节。
5创建注释创建一个注释节点
6createDocumentFragment创建DocumentFragment对象
7createElement创建元素节点
8创建实体引用创建实体引用对象
9createNode创建一个具有给定类型、名称和命名空间的节点。
10createPorcessingInstruction创建一个操作指令节点。
11createTextNode创建一个包含给定数据的文本节点。
12getElementsByTagName返回具有指定名称的元素集合。
13hasChildNodes返回当前节点是否有子节点。
14insertBefore在指定节点前插入子节点。
15Load在指定位置导入XML文档。
16loadXML导入指定字符串的XML文档。
17removeChild从子节点列表中删除指定的子节点。
18replaceChild从子节点列表中替换指定的子节点。
19Save将xml文件保存到指定的节点。
20selectNodes匹配指定的节点并返回匹配节点的列表。
21selectSingleNode匹配指定的节点并返回第一个匹配的节点。
22transformNode使用指定的样式表转换节点及其后代。
23transformNodeToObject使用指定的样式表将节点及其后代转换为对象。
*********************************
文档对象模型
随着DOM(文档对象模型)概念的引入,这个API使得HTML更加强大。但是有些学DHTML的朋友还是有些困难,只是因为现在的手册不够科学,按字母顺序写。
其实DOM最重要的是掌握node和node的关系。如果你想学习DHTML中的DOM,不要从头到尾读一遍。
一些属性和方法。你有三国里张松的‘过目不忘’能力吗?不,让我来分析一下:
其实DOM教给我们的是一个层次结构,你可以理解为一个树形结构,就像我们的目录,一个有子目录和子目录的根目录。
目录.
根节点:
DOM层次结构中的每个对象都称为一个节点,以html超文本标记语言为例:整个文档的一个根是HTML,可以在DOM中使用。
Document.documentElement来访问它,它是整个节点树的根节点。
子节点:
一般来说,根节点下最大的子节点是主文档区域主体。要访问body标签,您应该写:
文档.正文
body区域的所有文本和HTML标签都是文档的节点,分别称为文本节点和元素节点(或标签节点)。大家都知道HTML归根结底只是文本。
无论什么样的网页都必须由这两个节点组成,也只能由这两个节点组成。
节点之间的关系:
节点之间的关系也是DOM中最重要的关节。如何正确引用节点对象,一定要明确节点树中每个节点的描述。在DHTML中,
Javascript使用每个节点对象的一整套方法和属性来描述其他节点对象。
节点的绝对引用:
返回文档的根节点。
document.documentElement
返回当前文档中激活的标签节点。
文档. activeElement
返回鼠标移出的源节点。
事件. fromElement
返回鼠标移动到的源节点。
事件.到元素
返回激活事件的源节点。
event.srcElement
节点的相对引用:(假设当前节点对是节点)
返回父节点
节点.父节点
node.parentElement
返回子节点的集合(包括文本节点和标签节点)。
节点.子节点
返回子标记节点的集合。
节点.子节点
返回子文本节点的集合。
节点.文本节点
返回第一个子节点。
node.firstChild
返回最后一个子节点。
node.lastChild
返回到下一个节点。
node.nextSibling
返回到上一个节点。
node.previousSibling同级
节点的各种操作:(设当前节点为节点)
添加标签节点句柄:
document . createelement(s node)//参数是要添加的节点的标记名,例如:new node=document . createelement(' div ');
1.添加节点:
追加子节点:
Node.appendChild(oNode) //oNode是生命的新节点句柄,例如:node.appendChild(newnode)
应用程序标签节点
节点。APPLY ELEMENT (ONODE,SW where)//on ode是新添加的节点句柄。其中有两个值:outside/inside,它被添加到当前节点的外部或内部。
插入节点
inode.insertBefore()
node.insertAdjacentElement()
node.replaceAdjacentText()
2.修改节点:
删除节点
节点.移除()
node.removeChild()
node.removeNode()
替换节点
node.replaceChild()
node.replaceNode()
node.swapNode()
2.复制节点:
返回复制复制节点引用。
Node.cloneNode(bAll)//bAll是一个布尔值,true/false。是否要克隆此节点的所有子节点?
3.节点信息
包括一个节点?
node.contains()
有子节点吗?
node.hasChildNodes()
*******************************************************
以下操作xml for javascript。
脚本语言='JavaScript '
!-
var doc=new ActiveX object(' MSXML 2。DOM document’);//ie5.5,CreateObject(‘微软。XMLDOM ')
//加载文档
//doc . load(' b . XML ');
//创建文件头
var p=doc . createprocessinginstruction(' XML '' version=' 1.0 ' encoding=' GB 2312 ' ');
//添加文件头
doc . appendchild(p);
//用于直接加载时获取根联系人。
//var root=doc . documentelement;
//通过两种方式创建根联系人
//var root=doc . createelement(' students ');
var root=doc.createNode(1,'学生'' ');
//创建子联系人
var n=doc.createNode(1,' ttyp '' ');
//指定子联系人文本
//n.text='这是测试'
//创建sun联系人。
var o=doc . createelement(' sex ');
O.text='男'//指定其文本
//创建属性
var r=doc . create attribute(' id ');
r.value=' test
//添加属性
n . setattributenode(r);
//创建第二个属性
var R1=doc . create attribute(' class ');
R1 . value=' TT '
//添加属性
n . setattributenode(R1);
//删除第二个属性
n . remove attribute(' class ');
//添加sun联系人
n . appendchild(o);
//添加文本联系人
n . appendchild(doc . create textnode('这是一个文本节点。));
//添加注释
n . appendchild(doc . create comment('这是注释\ n '));
//添加子联系人
root . appendchild(n);
//复制联系人
var m=n.cloneNode(真);
root . appendchild(m);
//删除联系人
root . remove child(root . child nodes(0));