DOM主要方法总结

DOMDocument Object Model文档对象模型的缩写。根据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你可以访问页面其他的标准组件。
DOM  中的 节点

   *  整个文档就是一个文档节点。

   *  而每一个HMTL标签都是一个元素节点(divElement)

   *  标签中的文字则是文本节点(div)

   *  标签的属性是属性节点(divAttribute)

    一切都是节点

主要方法

 

一、getElementById()

   寻找一个有着给定 id 属性值的元素,返回值是一个有着给定 id 属性值的元素节点。如果不存在

这样的元素,它返回 null.

var oElement = document.getElementByIdx_x_x_x ( sID )


二、getElementsByName()

   寻找有着给定name属性的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处

理。这个集合的 length 属性等于当前文档里有着给定name属性的所有元素的总个数。


三、getElementsByTagName()

寻找有着给定标签名的所有元素,这个方法将返回一个节点集合,这个集合可以当作一个数组来处理

这个集合的 length 属性等于当前文档里有着给定标签名的所有元素的总个数。

var elements = document.getElementsByTagName_r(tagName);

var elements = element.getElementsByTagName_r(tagName);

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

的元素。

var container = document.getElementByIdx_x_x_x(“sid”);

var elements = container.getElementsByTagName_r(“p”);

alert(elements .length);

同时注意此方法与第二种方法的区别


四、hasChildNodes() 

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

var booleanValue = element.hasChildNodes();

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

永远是 false.

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

和空字符串

例:

 

var divElement=document.getElementByIdx_x_x_x("divs");

    if(divElement.hasChildNodes()){

   var nodes=divElement.childNodes;

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

      alert(nodes[i].getAttribute("id"));

   }

}


五、nodeName和nodeType

 

文档里的每个节点都有以下属性。
lnodeName:返回一个字符串,其内容是给定节点的名字 

 

 

  var name = node.nodeName;

   * 如果节点是元素节点,nodeName返回这个元素的名称

   * 如果是属性节点,nodeName返回这个属性的名称

   * 如果是文本节点,nodeName返回一个内容为#text 的字符串

 

  注:nodeName 是一个只读属性

lnodeType:返回一个整数,这个数值代表着给定节点的类型。
nodeType 属性返回的整数值对应着 12 种节点类型,常用的有三种:
Node.ELEMENT_NODE    ---1    -- 元素节点
Node.ATTRIBUTE_NODE  ---2    -- 属性节点
Node.TEXT_NODE       ---3    -- 文本节点
nodeType 是个只读属性
l nodeValue :返回给定节点的当前值(字符串)
如果给定节点是一个 属性节点 ,返回值是这个 属性的值
  如果给定节点是一个文本节点,返回值是这个文本节点的内容。
如果给定节点是一个 元素节点 ,返回值是  null
  nodeValue  是一个  /   属性,但不能对元素节点的  nodeValue  属性设置值,
  可以为文本节点的  nodeValue  属性设置一个值
 var  li  =  document.getElementByIdx_x_x_x (“ li ”);
 if( li.firstChild.nodeType  == 3)
 li.firstChild.nodeValue  = “ myLi” ;

六、replaceChild()
  • 把一个给定 父元素 里的一个子节点替换为另外一个子节点
  var  reference =  element.replaceChild ( newChild,oldChild );
  • 返回值是一个指向已被替换的那个子节点的引用指针
  • 如果被插入的子节点还有子节点,则那些子节点也被插入到目标节点中

七、查询属性节点和属性节点的值、删除和添加属性
    l getAttribute ()  
返回一个给定元素的一个 给定属性节点的值
  var  attributeValue  =  element.getAttribute ( attributeName );
给定属性的名字必须以字符串的形式传递给该方法
给定属性的值将以字符串的形式返回,如果给定属性不存在, getAttribute ()  将返回一个空字符串 .
l getAttributeNode ()
   通过属性获取属性节点
l setAttribute ()
    将给定元素节点 添加一个新的属性值或改变它的现有属性的值
    element.setAttribute ( attributeName,attributeValue );
    属性的名字和值必须以字符串的形式传递给此方法
    如果这个属性已经存在,它的值将被刷新;
    如果不存在, setAttribute () 方法 先创建它 再为其赋值
l removeAttribute ()
    删除指定名字的属性

八、创建新元素节点,创建文本节点
lcreateElement_x_x()
按照给定的标签名创建一个新的元素节点方法只有一个参数:将被创建的元素的名字,是一个字符串.
var reference = document_createElement_x_x(element);
方法的返回值:是一个指向新建节点的引用指针返回值是一个元素节点,所以它的
nodeType 属性值等于 1
新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于JavaScript 上下文的对象.
     var pElement = document_createElement_x_x("p");
l createTextNode ()
    创建一个包含着给定文本的新文本节点。这个方法的返回值是一个指向新建文本节点引用指针。
    var  textNode  =  document_createTextNode (text);
    方法只有一个参数:新建文本节点所包含的文本字符串
    方法的返回值:是一个指向新建节点的引用指针。它是 一个文本节点 ,所以它的  nodeType  属性
   等于  3.
  • 新元素节点不会自动添加到文档里,新节点没有  nodeParent  属性

九、innerHTML 属性
  l浏览器几乎都支持该属性,但不是 DOM 标准的组成部分。
   linnerHTML 属性可以用来读,写某给定元素里的 HTML 内容

十、插入节点
la()
  • 为给定元素增加一个子节点: 
         var   newreference   element.a ( newChild ).              
     给定子节点  newChild   将成为给定元素节点  element  最后一个子节点
    方法的返回值是一个指向新增子节点的引用指针。
    方法 通常与  createElement_x_x ()  createTextNode ()  配合使用
    新节点可以被追加给文档中的任何一个元素
linsertBefore()
    把一个给定节点插入到一个给定元素节点的给定子节点的 前面
   var  reference =   element .insertBefore ( newNode,targetNode );
     节点  newNode  将被插入到元素节点  element  中并出现在节点  targetNode  的前面 .
    节点  targetNode  必须是  element  元素的一个子节点
    方法通常与  createElement_x_x ()    createTextNode ()  配合使用
注意:
lDOM 没有提供 insertAfter() 方法但可以自己定义如下:
lselectElement.insertBefore(
newOptionElement,
optionElement.nextSibling);

l childNodes :返回一个数组,这个数组由给定元素节点的子节点构成:

  var nodeList = node.childNodes;

文本节点和属性节点都不可能再包含任何子节点 ,所以它们的  childNodes 属性永远会返回一个空数组。
如果想知道某个元素有没有子节点,可以用  hasChildNodes  方法
如果想知道某个元素有多少个子节点,可以用  childNodes  数组的  length  属性。
childNodes  属性是一个只读属性

l removeChild ()
从一个给定元素里删除一个子节点

   var reference = element.removeChild(node);

返回值是一个指向已被删除的子节点的引用指针。
某个节点被 removeChild () 方法删除时 , 这个节点所包含的所有子节点将同时被删除
如果想删除某个节点,但不知道它的父节点是哪一个, parentNode   属性可以帮忙。
l firstChild :该属性返回一个给定元素节点的第一个子节点,返回这个节点对象 的指针。

var reference = node.firstChild;

文本节点和属性节点都不可能包含任何子节点,所以它们的 firstChild 属性永远会返

回 null

某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点,即:

 var reference = node.ChildNodes[0];

firstChild 属性是一个只读属性
l lastChild :对应  firstChild  的一个属性。
l nextSibling :  返回一个给定节点的下一个兄弟节点。
l parentNode :返回一个给定节点的父节点。
parentNode  属性返回的节点永远是一个 元素 节点,因为只有元素节点才有可能包含子节点。
document  节点没有父节点
l previousSibling :返回一个给定节点的上一个兄弟节点

十一、显示弹出窗口
l 语法

vReturnValue = window . showModalDialog ( sURL,

                                                    vArguments , sFeatures )

参数说明:

lsURL--必选参数,用来指定对话框要显示的文档的URL
lvArguments--可选参数,用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
lsFeatures--可选参数,用来描述对话框的外观等信息,可以使用一个或几个,用分号“;”隔开。
如:
<script type="text/javascript">
         
           var buttonElement=document.getElementByIdx_x_x("btId");
           buttonElement.οnclick=function(){
              var dialogWidth=500;
              //IE下,获取可见页面的宽度
              var width=document.documentElement.clientWidth;
              var dialogLeft=(width-dialogWidth)/2;
              var sUrl="showModalDialog2.html";
              var vArguments=window;
              var sFeatures="dialogHeight:200px;dialogLeft:"+dialogLeft+"px";
             
              //以模式方式显示窗体内容
              window.showModalDialog(sUrl,vArguments,sFeatures);
           }
      </script>  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值