ibm官方资料把应用程序从 Internet Explorer 迁移到(3)

表 1. 用于访问元素的方法 方法   说明  
document.getElementById( aId )   返回具有指定 ID 的元素的引用。  
document.getElementsByTagName( aTagName )   返回文档中具有指定名称的元素数组。  

遍历 DOM

Mozilla 通过 JavaScript 支持遍历 DOM 树的 W3C DOM API(如表 2 所示)。文档中每个节点都可使用这些 API 方法,可以在任何方向上遍历树。Internet Explorer 也支持这些 API,还支持原来用于遍历 DOM 树的 API,比如 children 属性。

表 2. 用于遍历 DOM 的方法 属性/方法   说明  
childNodes   返回元素所有子节点的数组。  
firstChild   返回元素的第一个子节点。  
getAttribute( aAttributeName )   返回指定属性的值。  
hasAttribute( aAttributeName )   返回一个 Boolean 值表明当前节点是否包含指定名称的属性。  
hasChildNodes()   返回一个布尔指表明当前节点是否有子节点。  
lastChild   返回元素的最后一个子节点。  
nextSibling   返回紧接于当前节点之后的节点。  
nodeName   用字符串返回当前节点的名称。  
nodeType   返回当前节点的类型。

  说明  
1   元素节点  
2   属性节点  
3   文本节点  
4   CDATA 选择节点  
5   实体引用节点  
6   实体节点  
7   处理指令节点  
8   注释节点  
9   文档节点  
10   文档类型节点  
11   文档片断节点  
12   符号节点  

 
nodeValue   返回当前节点的值。对于包含文本的节点,如文本和注释节点返回其字符串值。对于属性节点返回属性值。其他节点返回 null。  
ownerDocument   返回包含当前节点的 document 对象。  
parentNode   返回当前节点的父节点。  
previousSibling   返回当前节点之前的相邻节点。  
removeAttribute( aName )   从当前节点中删除指定的属性。  
setAttribute( aName, aValue )   设置指定属性的值。  

Internet Explorer 有一种非标准的特殊行为,这些 API 很多跳过(比如)新行字符生成的空白文本节点。Mozilla 则不跳过,因此有时候需要区分这些节点。每个节点都有一个 nodeType 属性指定了节点类型。比如,元素节点类型是 1,文本节点是 3,而注释节点是 8。仅处理元素节点最好的办法是遍历所有子节点,然后处理那些 nodeType 为 1 的节点:

HTML: <div> <span>Test</span> c </div> JavaScript: var myDiv = document.getElementById("foo"); var myChildren = myXMLDoc.childNodes; for (var i = 0; i < myChildren.length; i++) { if (myChildren[i].nodeType == 1){ // element node } }  

生成和操纵内容

Mozilla 支持向 DOM 动态增加内容的遗留方法,如 document.write、document.open 和 document.close。Mozilla 也支持 Internet Explorer 的 InnerHTML 方法,该方法基本上可以在任何节点上使用。但是不支持 OuterHTML(围绕着元素添加标记,标准中也没有等价的方法)和 innerText(设置节点的文本值,在 Mozilla 中可使用 textContent)。

Internet Explorer 有一些非标准的、Mozilla 不支持的内容操作方法,包括检索值、插入文本以及邻近某个节点插入元素,比如 getAdjacentElement 和 insertAdjacentHTML。表 3 说明了 W3C 标准和 Mozilla 操纵内容的方法,这些方法适用于任何 DOM 节点。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjgysf.html