发布网友 发布时间:2022-04-30 01:39
共1个回答
热心网友 时间:2022-04-24 10:10
一、使用DOM考虑一个html文件:<html><head><title>测试</title></head><body><p>测试</p></body></html>1.访问节点:访问html元素:var oHtml=document.documentElement;获取head元素:var oHead=oHtml.firstChild;获取body元素:var oBody=oHtml.lastChild; 或者 var oBody=document.body;也可以通过childNodes来做同样的工作:var oHead=oHtml.childNodes[0] 或者 oHtml.childNodes.item(0);var oBody=oHtml.childNodes[1] 或者 oHtml.childNodes.item(1);判断节点间关系:alert(oHead.parentNode==oHtml); alert(oBody.previousSibling==oHead);alert(oHead.nextSibling==oBody);alert(oHead.ownerDocument==document);2.检测节点类型:通过节点的nodeType属性来检验节点类型:alert(document.nodeType); //输出9需要注意的是,DOM兼容的浏览器(以FF2.0为例),拥有Node.DOCUMENT_NODE、Node.ELEMENT_NODE等常量。各常量名称与数值对照表如下:ELEMENT_NODE 1ATTRIBUTE_NODE 2TEXT_NODE 3CDATA_SECTION_NODE 4ENTITY_REFERENCE_NODE 5ENTITY_NODE 6PROCESSING_INSTRCTION_NODE 7COMMENT_NODE 8DOCUMENT_NODE 9DOCUMENT_TYPE_NODE 10DOCUMENT_FRAGMENT_NODE 11NOTATION_NODE 12IE6不支持,不过你可以自定义一个JS对象Node。3.处理特性处理特性可以使用标准的NameNodeMap中的方法:getNamedItem(name) removeNamedItem(name) setNamedItem(node) item(pos)比如:<p id="test">测试</p>假设变量oP是上面的p节点的引用,我们要访问oP的id属性:var sId=oP.attributes.getNamedItem("id").nodeValue;这些方法用起来很累赘,所以DOM又定义了三个方法来简化:getAttribute(name) ——返回名称为name的属性的值setAttribute(name,value) ——顾名思义removeAttribute(name) ——顾名思义 上面的例子可以改写为:var sId=oP.getAttribute("name");4.访问指定节点:熟知的getElementByTagName(name),getElementByName(name),getElementById(id)三个方法,不再展开。5.创建和操作节点:(1)创建新节点,一张IE(6.0)和FF对DOM Level1的创建新节点方法支持的对照表:方法