第六章 DOM基础
一、使用DOM
1.获取html对象
nodeName\nodeValue\nodeType\ownerDocument\firstChild\lastChild\childNodes\
previousSibling\nextSiling\hasChildNodes\attributes\appendChild\removeChild
replaceChild\insertChild
node接口定义的不同的节点类型常量(数字表示相应的类型)
1=Node.ELEMENT_NODE
2=Node.ATTRIBUTE_NODE
3=Node.TEXT_NODE
4=Node.CDATA_SECTION_NODE
5=Node.ENTITY_REFERENCE_NODE
6=Node.ENTIRY_NODE
7=Node.PROCESSING_INSTRUCTION_NODE
8=Node.COMMENT_NODE
9=Node.DOCUMENT_NODE
10=Node.DOCUMENT_TYPE_NODE
11=Node.DOCUMENT_FRAGMENT_NODE
12=Node.NOTATION_NODE
var oHtml=document.documentElement;
//获取子节点
oHtml.childNodes.item(0) 或者 oHtml.childNodes[index]
o.attributes.getNamedItem(name)返回nodeName等于name的节点
o.attributes.removeNamedItem(name)删除nodeName等于name的节点
o.attributes.setNamedItem(node)将node插入到节点中,按nodeName属性进行索引
o.attributes.item(pos)获取pos位置节点
o.getAttribute(name)
o.setAttribute(name,newvalue)
o.removeAttribute(name)
getElementsByTagName()
getElementsByName()
getElementById
2.创建和操作节点
createElement()\createTextNode()\appendChild()
function createElement(){
var oP=document.createElement("input");
var oText=document.createTextNode("value");
oP.appendChild(oText);
document.body.appendChild(oP);
}
removeChild()\replaceChild\insertBefore()
createDocumentFragment()创建一个文档碎片,把所有新节点附加其上,然后把文档碎片的内容一次性添加到document中。
function createElement(){
var arrText=["first","second","third"];
var oFragment=document.createDocumentFragment();
for(var i=0;i<arrText.length;i++){
var oP=document.createElement("p");
var oText=document.createTextNode(arrText[i]);
oP.appendChild(oText);
oFragment.appendChild(oP);
}
document.body.appendChild(oFragment);
}
3.HTML DOM 特征功能
eg: <img class="abc" src="abc.jpg" border="0" />
oImg=document.getElementsByTagName("img");
oImg.getAttribute("src")=oImg.src;
oImg.setAttribute("src","a.jpg") = (oImg.src="a.jpg")
但是对于class属性要这样获取oImg.className
HTML DOM 给<table/>/<tbody>/<tr/>添加的新特性和方法
给<table/>元素添加了以下内容
caption-指向<caption/>元素
tBodies-<tbody/>元素集合
tFoot-指向<tfoot/>元素
tHead-指向<thead/>元素
rows-表格中所有行的集合
createTHead-创建<thead/>元素并将其放入表格
createTFoot-创建<tfoot/>元素并将其放入表格
createCaption-创建<caption/>元素并将其放入表格
deleteTHead-删除<thead/>元素
deleteTFoot-删除<tfoot/>元素
deleteCaption-删除<caption/>元素
deleteRow(position)-删除指定位置上的行
insertRow(position)-在指定位置插入行
<tbody/>元素添加了以下内容
rows-<tbody>中所有行的集合
deleteRow(position)-删除指定位置上的行
insertRow(position)-在指定位置插入行
<tr/>元素添加了以下内容
cells-<tr/>元素所有单元格集合
deleteCell(position)-删除给定位置上单元格
insertCell(position)-在指定位置插入一个新的单元格
//创建表格
var oTable=document.createElement("table");
oTable.setAttribute("border","1");
oTable.setAttribute("width","100%");
//create the tbody
var oTbody=document.createElement("tbody");
oTable.appendChild(oTbody);
//create the first row
oTbody.insertRow(0);
oTbody.rows[0].insertCell(0);
oTbody.rows[0].cells[0].appendChild(document.createTextNode("Cell 1,1"));
oTbody.rows[0].insertCell(1);
oTbody.rows[0].cells[1].appendChild(document.createTextNode("Cell 2,1"));
//create the second row
oTbody.insertRow(1);
oTbody.rows[1].insertCell(0);
oTbody.rows[1].cells[0].appendChild(document.createTextNode("Cell 1,2"));
oTbody.rows[1].insertCell(1);
oTbody.rows[1].cells[1].appendChild(document.createTextNode("Cell 2,2"));
//add the table to the document body
document.body.appendChild(oTable);
遍历DOM------NodeIterator
NodeIterator还有nextNode()\previousNode()方法
var iterator=document.createNodeIterator(document,NodeFilter.SHOW_ALL,null,false)
eg:var iterator=null;
function makeList(){
var oDiv=document.getElemenetById("div1");
var oFilter=new Object();
oFilter.acceptNode=function(oNode){//此方法用于过滤掉标签为p的节点
return (oNode.tagName=="p")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT;
}
iterator=document.createNodeIterator(oDiv,NodeFilter.SHOW_ALL,null,false);
while(iterator.nextNode()){
......
}
}
遍历DOM------TreeWalker
TreeWalker还有nextNode()\previousNode()\parentNode()\firstNode()\lastNode()\nestSibling()\previousSibling()方法
var iterator=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,false)
eg:var iterator=null;
function makeList(){
var oDiv=document.getElemenetById("div1");
var oFilter=new Object();
oFilter.acceptNode=function(oNode){//此方法用于过滤掉标签为p的节点
return (oNode.tagName=="p")?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT;
}
iterator=document.createTreeWalker(oDiv,NodeFilter.SHOW_ALL,null,false);
while(iterator.nextNode()){
......
}
}
分享到:
相关推荐
**DOM基础** DOM,全称为Document Object Model,中文译为文档对象模型,是W3C组织制定的一个标准,用于表示XML或HTML文档的一种结构化表示方式。DOM将整个文档视为一个由节点组成的树形结构,其中每个节点代表文档...
标题《DOM基础》和描述《JavaScript DOM基础》表明这是一份关于JavaScript文档对象模型(Document Object Model,简称DOM)的入门级教学内容。DOM是编程语言中一个用于HTML和XML文档的API,它提供了一种方式,使得...
JvavScript之dom基础(源代码)JvavScript之dom基础(源代码)JvavScript之dom基础(源代码)JvavScript之dom基础(源代码)JvavScript之dom基础(源代码)JvavScript之dom基础(源代码)JvavScript之dom基础(源...
DOM 首页 DOM 简介 DOM 节点 DOM 节点树 DOM 节点访问 DOM 节点信息 DOM How To DOM 参考 DOM 总结 DOM 实例 DOM 实例 DOM 对象 DOM Window DOM Navigator DOM Screen DOM History DOM Location DOM ...
DOM基础学习主要包括以下几个方面: 1. **DOM结构**:DOM将HTML文档解析为一棵由节点组成的树,其中每个元素、属性和文本都对应一个节点。根节点是`<html>`,下面包含`<head>`和`<body>`两个子节点。元素节点有子...
这个“XML DOM基础教程”显然是为了帮助初学者理解和掌握XML与DOM的核心概念。 XML的主要用途是存储和传输结构化数据。它与HTML不同,HTML主要用于显示数据,而XML则专注于数据的结构和意义。XML文档由一系列元素...
文档对象模型(DOM,Document Object Model)是Web开发...以上是DOM基础中涉及到的关键知识点,它们构成了网页动态交互和内容管理的基础。通过深入理解和应用这些知识点,可以有效地控制网页元素的动态行为和样式表现。
总的来说,DOM基础是JavaScript中进行动态网页开发的关键技能,通过熟练掌握DOM节点的操作和元素属性的控制,开发者可以实现丰富的交互效果和动态内容更新,提升用户体验。对于想要深入学习JavaScript和Web开发的人...
【DOM基础】 DOM,全称为Document Object Model,是一种基于标准的、与语言无关的、平台无关的接口,用于访问和操作HTML、XML文档。它将网页内容抽象为一棵树形结构,允许开发者通过JavaScript或其他编程语言来遍历...
**Ajax完全自学手册-DOM基础及高级DOM技术** 在Web开发中,DOM(Document Object Model)扮演着核心角色,它是HTML和XML文档的结构化表示,允许编程语言与页面内容进行交互。本手册深入浅出地讲解了DOM的基础概念...
### DOM基础和基本API知识点详解 #### 一、什么是DOM? DOM(Document Object Model)是一种文档对象模型,它是W3C组织推荐的标准之一,用于表示和处理结构化的文档(如HTML或XML)。DOM提供了一种方式,使得程序...
这篇学习笔记主要围绕DOM基础展开,涵盖了JavaScript操作DOM的各种方法和技术。 在JavaScript中,DOM被视为一个树形结构,其中每个节点代表了页面上的一个元素、属性或文本。DOM的基础主要包括以下几个方面: 1. *...
XML&DOM基础教程.CHM
文档对象模型(DOM,Document Object Model)是一个跨平台和语言独立的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。DOM将HTML或XML文档表示为树结构,每个节点代表文档中的一个部分(例如一个...
DOM Day 3的学习重点可能涵盖DOM的基本概念、操作DOM节点、事件处理以及DOM遍历等方面。 一、DOM基本概念 DOM是“文档对象模型”的缩写,它将HTML或XML文档解析为一个由节点组成的树形结构。每个节点代表文档的一...
在给定的文件内容中,我们看到了对JavaScript基础操作的介绍,特别是在DOM操作方面的实例小结。 ### 一、子节点 在DOM中,每个节点可以有零个或多个子节点。子节点包括元素节点、文本节点等。通过`childNodes`属性...
1. **DOM基础**:解释DOM是什么,它是如何工作的,以及它在Web开发中的角色。 2. **节点与节点类型**:包括元素节点、属性节点、文本节点等,以及它们之间的关系和遍历方法。 3. **选择节点**:如何使用`...
每个元素、属性、文本等都是一个节点,通过DOM API,我们可以对这些节点进行操作,实现对XML文档的增删改查。在PHP中,DOM扩展提供了DOMDocument和DOMElement等类,使得我们可以方便地处理XML数据。 在上述文档中,...