【JavaScript】DOM进阶
来源:互联网 发布:windows7摄像头软件 编辑:程序博客网 时间:2024/06/05 15:48
DOM进阶
一、DOM是什么?
它提供了一种访问和修改HTML文档内容的方法。DOM是万维网联盟(W3C)定义的一种标准。大部分的互联网浏览器以各种形式实现了DOM并且获得了不同程度的成功。和很多其他标准,特别是那些与web编程相关的标准一样,DOM已经发展了多年。它有三个规范,即所谓的DOM级别,第四个规范正在制定中。
DOM级别:
DOM0级(遗留DOM):
主要集中在对表单元素的访问,不过也加入了对链接和图像的访问。
DOM层级1到3:
1998年,W3C将DOM层级1作为规范发布。和0级一样,层级1也受所有主流浏览器以各种形式支持。DOM层级2在2000年正式发布。各种浏览器对DOM层级2的支持有很大不同。最后,DOM层级3在2004年编制,在主流浏览器中有不同程度的支持。不过,对所有DOM层级的支持都碎浏览器及版本的不同而不同。
把DOM看做一棵树:
操作节点:
树结构中的元素有时被称为节点或节点对像。与使用方法操作DOM元素的方式一样,也可以使用方法操作那些反映父子和兄弟关系的节点。例如可以利用appendChild()方法在一个已有的父节点上添加节点。
二、DOM基础
获取元素:
1.通过ID获取
getElementId()获取HTML文档的一个特定元素并且返回一个对它的引用。为了获取元素,它必须有一个id属性。
<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title>HelloWorld</title> </head> <body> <p>Here'ssome text.</p> <p>Here'smore text.</p> <p>Linkto the <a id="w3link"href="http://www.w3.org">W3</a></p> </body></html><a>元素有了一个id属性,可以使用getElementById()方法获取它,如下:
var a1 = document.getElementById("w3link");
2.通过标签名获取
当只获取一个或几个元素时,getElementId()方法工作的很好,但是当需要同时获取超过一个元素时,可能getElementByTagName()方法更合适。
getElementByTagName()以数组或者列表的格式返回指定标签类型的所有元素。
var a1 = document.getElementById("w3link");
3.HTML集合
Document.anchors一个包含所有<A>元素的组(有name属性的元素)
Document.forms 包含文档中所有<FORM>元素的组
Document.images 包含所有<IMG>元素的组
Document.links包含所有具有href属性的<A>及<AREA>元素的组
4.处理兄弟节点
childNodes属性包含一组由给定元素的孩子组成的节点。类似数组,但不是数组类型。
下面获取第一个孩子并将其放入childOne变量:
var childOne =document.getElementById("mydiv").childNodes[0];
parentNode属性可获取父节点,nextSibling和previousSibling遍历一组子结点。如果没有兄弟,则该属性返回null。
firstChild和lastChild属性分别包含给定元素的第一个孩子和最后一个,没有孩子时,这些属性都是null。
操作属性:
元素的属性可以通过JavaScript获取和设置。
1.获取:getAttribute()
var a1= document.getElementById("w3link");alert(a1.getAttribute("href"));
2.设置:setAttribute()
a1ertAttribute("href","http://www.microsoft.com");
创建元素:
我们没有受到与页面上已有元素交互的限制,可以使用DOM为文档添加元素。
1.添加文本:使用t.createElement、createTextNode、.appendChild创建一个元素。
为文档创建或添加一个元素:
var newelement = document.createElement("p");变量newelement有了一个对新元素的引用。为了使元素可见,需要将元素添加到文档上,使用appendChild()方法将一个元素添加到文档:
document.body.appendChild(newelement);
但是,如果<p>元素没有任何文本呢?appendChild()元素也可以帮忙,它可以和createTextNode()方法联合起来使用。
newelement.appendChild(document.createTextNode("HelloWorld"));
2.添加元素并设置ID:
使用jQuery创建一个元素,设置ID将是一个在元素上使用attr()函数的简单事情。
删除元素:
removeChild()方法可以从文档中删除任何元素:
<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title>Del</title> </head> <body> <scripttype="text/javascript"> for (var i=0; i<3; i++) { varelement = document.createElement("p"); element.setAttribute("id","element"+ i); document.body.appendChild(element); element.appendChild(document.createTextNode("HelloWorld,I'm Element " + i+".")); } varremoveel = document.getElementById("element1"); document.body.removeChild(removeel); </script> </body></html>
下面是用jQuery编写的,使用remove()函数删除元素,代码简单了很多:
<!DOCTYPEhtml><html> <head> <metacharset="UTF-8"> <title>Del</title> <scripttype="text/javascript"src="jquery-1.7.2.min.js"></script> </head> <body> <scripttype="text/javascript"> for(var i = 0; i < 3;i++){ $("body").append("<pid=/"element" + i + ">Hello World,I'm Element " + i +".</p>"); } $("#element1").remove(); }); </script> </body></html>
总结:
推荐书籍:《JavaScript从入门到精通》Steve Suehring著。
感谢您的阅读!
- 【JavaScript】DOM进阶
- JavaScript学习8:DOM进阶
- javaScript笔记(十六) DOM进阶
- JavaScript进阶学习——DOM对象
- javascript笔记--(第二十章)DOM进阶
- JavaScript进阶(对象、BOM、DOM、事件)
- JavaScript进阶(三)之认识DOM
- DOM进阶
- Dom进阶
- Dom进阶
- DOM--进阶
- javascript进阶——分离式DOM脚本编程
- JavaScript 进阶学习 7 DOM对象,控制HTML元素
- JavaScript进阶之--DOM事件、动画(运动框架)
- DOM进阶知识
- [20]DOM进阶
- [DOM]javascript DOM操作
- Javascript DOM
- scrapy源码分析(四)-------spider篇------网页爬取流程分析(一)
- shell脚本---awk命令
- POJ3261-Milk Patterns
- JavaScript贷款计算器
- 经典的多线程题目
- 【JavaScript】DOM进阶
- 《启示录》
- bootstrap使用经验点滴
- ds 2.3 击鼓传花
- 编译原理是什么?怎么学?
- MySQL基础
- 中英文对照 —— 互联网、IT(信息科技)、编程
- 算法 N皇后问题
- Mvp理论浅析