Dom小结

DOM总结;

DOM DOM= Document Object Model文档对象模型DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。换句话说,这是表示和处理一个HTMLXML文档的常用方法。有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言.

    D:文档 html 文档 xml 文档

    O:对象 document 对象的属性和方法

    M:模型

    DOM 是针对xml(html)的基于树的API

    DOM:节点node)的层次。

    DOM 把一个文档表示为一棵家谱树(父,子,兄弟)

    DOM定义了Node的接口以及许多种节点类型来表示XML节点的多个方面

DOM的结构:

        

 

节点:

根据 DOMHTML 文档中的每个成分都是一个节点。DOM 是这样规定的:

    整个文档是一个文档节点

    每个 HTML 标签是一个元素节点

    包含在 HTML 元素中的文本是文本节点

    每一个 HTML 属性是一个属性节点

    注释属于注释节点

 

Node 层次:

节点彼此都有等级关系。

HTML 文档中的所有节点组成了一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表着树中的一个节点。树起始于文档节点,并由此继续伸出枝条,直到处于这棵树最低级别的所有文本节点为止。



 

 

节点及其类型:

节点:

   *  由结构图中我们可以看到,整个文档就是一个文档节点。

   *  而每一个HMTL标签都是一个元素节点。

   *  标签中的文字则是文本节点。

   *  标签的属性是属性节点。

   *  一切都是节点……

节点树:

     节点树的概念从图中一目了然,最上面的就是树根了。节点之间有父子关系,祖先与子孙关系,兄妹关系。这些关系从图中也很好看出来,直接连线的就是父子关系了。而有一个父亲的就是兄妹关系……

NODE接口的特性和方法:

特性/方法

类型/返回类型

   

nodeName

String

节点的名字;根据节点的类型而定义

nodeValue

String

节点的值;根据节点的类型而定义

nodeType

Number

节点的类型常量值之一

ownerDocument

Document

指向这个节点所属的文档

firstChild

Node

指向在childNodes列表中的第一个节点

lastChild

Node

指向在childNodes列表中的最后一个节点

childNodes

NodeList

所有子节点的列表

previousSibling

Node

指向前一个兄弟节点;如果这个节点就是第一个兄弟节

点,那么该值为null

nextSibling

Node

指向后一个兄弟节点;如果这个节点就是最后一个兄弟节

点,那么该值为null

hasChildNodes()

Boolean

childNodes包含一个或多个节点时,返回真

attributes

NamedNodeMap

包含了代表一个元素的特性的Attr对象;仅用于Element

节点

appendChild(node)

Node

node添加到childNodes的末尾

removeChild(node)

Node

childNodes中删除node

replaceChild
(newnode, oldnode)

Node

childNodes中的oldnode替换成newnode

insertBefore
(newnode, refnode)

Node

childNodes中的refnode之前插入newnode

查找并访问节点:

你可通过若干种方法来查找您希望操作的元素:

    通过使用 getElementById() getElementsByTagName() 方法

    通过使用一个元素节点的 parentNodefirstChild 以及 lastChild 属性

查找元素节点:

getElementById()寻找一个有着给定 id 属性值的元素,返回值是一个有着给定 id 属性值的元素节点。如果不存在这样的元素,它返回 null.

var oElement = document.getElementById ( sID )

        该方法只能用于 document 对象

<input type="text" value="国庆60周年" id="tid">

 function test(){

    var usernameElement=document.getElementById(“tid");

    //获取元素的值

    alert("usernameElement.value: "+usernameElement.value)

    //获取元素的类型

    alert("usernameElement.type: "+usernameElement.type)

}

getElementsByName()寻找有着给定name属性的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定name属性的所有元素的总个数。

 <form name="form1">

        <input type="text" name="tname" value="国庆60_1" /><br>

        <input type="text" name="tname" value="国庆60_2" /><br>

        <input type="text" name="tname" value="国庆60_3" /><br>

        <input type="button" name="ok" value="保存" id="ok"  onclick="test();">

 </form> 

function test(){

     var tnameArray=document.getElementsByName("tname");

     alert(tnameArray.length);

     for(var i=0;i<tnameArray.length;i++){

             window.alert(tnameArray[i].value);

      }

  }

getElementsByTagName()寻找有着给定标签名的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理。这个集合的 length 属性等于当前文档里有着给定标签名的所有元素的总个数。

    var elements = document.getElementsByTagName(tagName);

    var elements = element.getElementsByTagName(tagName);

该方法不必非得用在整个文档上。它也可以用来在某个特定元素的子节点当中寻找有着给定标签名的元素

    var container =   document.getElementById(sid);

    var elements = container.getElementsByTagName(p);

    alert(elements .length);

查看是否存在子节点:

 hasChildNodes()该方法用来检查一个元素是否有子节点,返回值是 true false.

      var booleanValue = element.hasChildNodes();

文本节点和属性节点不可能再包含任何子节点,所以对这两类节点使用 hasChildNodes 方法的返回值永远是 false.

如果 hasChildNodes 方法的返回值是 false,则 childNodes,firstChild,lastChild 将是空数组和空字符串。

hasChildNodes()例:

var selectElements=document.getElementsByTagName("select");

 alert(selectElements[0].hasChildNodes())

var inputElements=document.getElementsByTagName("input");

for(var i=0;i<inputElements.length;i++){

     alert(inputElements[i].hasChildNodes());

}

根节点:

有两种特殊的文档属性可用来访问根节点:

document.documentElement

document.body

第一个属性可返回存在于 XML 以及 HTML 文档中的文档根节点。

第二个属性是对 HTML 页面的特殊扩展,提供了对 <body> 标签的直接访问。

DOM节点信息:

每个节点都拥有包含着关于节点某些信息的属性。这些属性是:

nodeName(节点名称)

nodeValue(节点值)

nodeType(节点类型)

DOM属性---nodeName

nodeName 属性含有某个节点的名称。

var name = node.nodeName;

元素节点的 nodeName 是标签名称

属性节点的 nodeName 是属性名称

文本节点的 nodeName 永远是 #text

文档节点的 nodeName 永远是 #document

注释:nodeName 所包含的 XML 元素的标签名称永远是大写的

:nodeName 是一个只读属性

DOM 属性 – nodeValue

nodeValue:返回给定节点的当前值(字符串)

 如果给定节点是一个属性节点,返回值是这个属性的值

如果给定节点是一个文本节点,返回值是这个文本节点的内容。

如果给定节点是一个元素节点,返回值是 null

nodeValue 是一个 / 属性,但不能对元素节点的 nodeValue 属性设置值,但可以为文本节点的 nodeValue 属性设置一个值

                     var li = document.getElementById(li

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值