# DOM1

DOM1


Nodde类型:

DOM1 级定义了一个 Node 接口,该接口将由 DOM 中的所有节点类型实现。
JavaScript 中的所有节点类型都继承自 Node 类型,因此所有节点类型都共享着相同的基本属性和方法。

Nodetype类型:

每个节点都有一个 nodeType 属性,用于表明节点的类型。

if (someNode.nodeType == 1)
{ //适用于所有浏览器
 alert("Node is an element."); 
}

NodeName和NodeValue属性:

对于元素节点,nodeName 中保存的始终都是元素的标签名,而 nodeValue 的值则始终为 null。

childNodes 属性

_其保存NodeList 对象。NodeList 是一种类数组对象,用于保存一组有序的节点,可以通过位置来访问这些节点。

var firstChild = someNode.childNodes[0]; 
var secondChild = someNode.childNodes.item(1); /*也可以通过item来访问*/
var count = someNode.childNodes.length;

previousSibling和 nextSibling 属性

previousSibling属性:

可以访问列表中前一个节点:列表中第一个节点的 previousSibling 属性值为 null

nextSibling 属性

可以访问列表中后一个节点: 列表中最后一个节点的 nextSibling 属性的值同样也为 null

hasChildNodes属性:

hasChildNodes()也是一个非常有用的方法,这个方法在节点包含一或多个子节点的情况下返回 true

ownerDocument属性:

不必在节点层次中通过层层回溯到达顶端,而是可以直接访问文档节点。

操作节点:

appendChild()方法:

用于向 childNodes 列表的末尾添加一个节点
如果传入到 appendChild()中的节点已经是文档的一部分了,那结果就是将该节点从原来的位置转移到新位置(新位置是someNode的结尾)

var returnedNode = someNode.appendChild(someNode.firstChild); 
alert(returnedNode == someNode.firstChild); //false 
alert(returnedNode == someNode.lastChild); //true

insertBefore()方法

参数:要插入的节点和作为参照的节点,插入节点后,被插入的的节点会变成参照节点的前一个同胞节点.
提示:如果参照节点是null,则 insertBefore()与 appendChild()执行相同的操作

//插入后成为最后一个子节点
returnedNode = someNode.insertBefore(newNode, null); 
alert(newNode == someNode.lastChild); //true 

//插入后成为第一个子节点
var returnedNode = someNode.insertBefore(newNode, someNode.firstChild); 
alert(returnedNode == newNode); //true 
alert(newNode == someNode.firstChild); //true 

//插入到最后一个子节点前面
returnedNode = someNode.insertBefore(newNode, someNode.lastChild); 
alert(newNode == someNode.childNodes[someNode.childNodes.length-2]); //true

replaceChild()方法:

参数:要插入的节点和要替换的节点,替换的节点会被移除

//替换第一个子节点
var returnedNode = someNode.replaceChild(newNode, someNode.firstChild); 
//替换最后一个子节点
returnedNode = someNode.replaceChild(newNode, someNode.lastChild);

removeChild(移除的节点)方法

被移除的节点将成为方法的返回值

cloneNode()方法:

cloneNode()方法接受一个布尔值参数,表示是否执行深复制。在参数为 true的情况下,执行深复制,也就是复制节点及其整个子节点树;在参数为 false 的情况下,执行浅复制,即只复制节点本身。复制后返回的节点副本属于文档所有,但并没有为它指定父节点。

<ul> 
	 <li>item 1</li> 
	 <li>item 2</li> 
 	<li>item 3</li> 
</ul>


	var deepList = myList.cloneNode(true); 
	alert(deepList.childNodes.length); //3(IE < 9)或 7(其他浏览器)
	var shallowList = myList.cloneNode(false); 
	alert(shallowList.childNodes.length); //0

__提示:cloneNode()方法不会复制添加到 DOM 节点中的 JavaScript 属性,例如事件处理程序等。


Document类型:

document 对象是 HTMLDocument(继承自 Document 类型)的一个实例
1.nodeType 的值为 9;
2.nodeName 的值为"#document";
3.nodeValue 的值为 null;
4.parentNode 的值为 null;
5.ownerDocument 的值为 null;
其子节点可能是一个 DocumentType(最多一个)、Element(最多一个)ProcessingInstruction或 Comment。

documentElement属性

var html = document.documentElement; //取得对<html>的引用
alert(html === document.childNodes[0]); //true 
alert(html === document.firstChild); //true

body

直接指向元素

var body = document.body; //取得对<body>的引用

DocumentType

通常将<!DOCTYPE>标签看成一个与文档其他部分不同的实体.

var doctype = document.doctype; //取得对<!DOCTYPE>的引用

title属性:

。通过这个属性可以取得当前页面的标题,也可以修改当前页面的标题并反映在浏览器的标题栏中

//取得文档标题
var originalTitle = document.title; 
//设置文档标题
document.title = "New page title";

nameItem方法:

使用这个方法可以通过元素的name 特性取得集合中的项。

<img src="myimage.gif" name="myImage">

let image=document.getElementsByTagName("img")
var myImage = images.namedItem("myImage"); 

getElementsByName()方法:

这个方法会返回带有给定name特性的所有元素。

特殊集合:

document.anchors,包含文档中所有带name特性的<a>元素;\
document.forms,包含文档中所有的<form>元素,document.getElementsByTagName("form")
document.images,包含文档中所有的<img>元素,与document.getElementsByTagName("img")得到的结果相同;
document.links,包含文档中所有带href特性的<a>元素。

文档写入:

write()和writeln()方法都接受一个字符串参数,即要写入到输出流中的文本。
write()会原样写入,而writeln()则会在字符串的末尾添加一个换行符(\n)。

<html> 
<head> 
    <title>document.write() Example</title> 
</head> 
<body> 
    <p>The current date and time is: 
    <script type="text/javascript"> 
        document.write("<strong>" + (new Date()).toString() + "</strong>");     
     <\ /script> 
    </p> 
</body> 
</html> 

方法open()和close()分别用于打开和关闭网页的输出流。

Element类型

所有HTML元素都由HTMLElement类型表示,不是直接通过这个类型,也是通过它的子类型来表示。HTMLElement类型直接继承自Element并添加了一些属性。
id,元素在文档中的唯一标识符。
title,有关元素的附加说明信息,一般通过工具提示条显示出来。
className,与元素的class特性对应,即为元素指定的CSS类。没有将这个属性命名为class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值