DOM编程基础知识

HTML DOM (文档对象模型)###

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被构造为对象的树。

HTML DOM 树####

DOM 树

查找 HTML 元素####

通过 id 找到 HTML 元素#####

在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。

实例######

本例查找 id="intro" 元素,如果找到该元素,则该方法将以对象(在 x 中)的形式返回该元素。如果未找到该元素,则 x 将包含 null。

var x=document.getElementById("intro");

通过标签名找到 HTML 元素#####

本例查找 id="main" 的元素,然后查找 "main" 中的所有

元素:

var x=document.getElementById("main");
var y=x.getElementsByTagName("p");

通过类名找到 HTML 元素#####

本例查找 class="main" 的元素:

var x=document.getElemenstByClassName("main");

改变 HTML####

改变 HTML 输出流#####

JavaScript 能够创建动态的 HTML 内容,在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。




提示:绝不要使用在文档加载之后使用 document.write()。这会覆盖该文档。

改变 HTML 内容#####

修改 HTML 内容的最简单的方法时使用 innerHTML 属性。如需改变 HTML 元素的内容,请使用这个语法:

document.getElementById(id).innerHTML=new HTML

实例######

本例改变了

元素的内容:


Hello World!


改变 HTML 属性#####

如需改变 HTML 元素的属性,请使用这个语法:

document.getElementById(id).attribute=new value

实例######

本例改变了 元素的 src 属性:




改变 CSS####

改变 HTML 样式#####

如需改变 HTML 元素的样式,请使用这个语法:

document.getElementById(id).style.property=new style

下面的例子会改变

元素的样式:

Hello World!

添加和删除节点(HTML 元素)####

创建新的 HTML 元素#####

如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。

实例######


这是一个段落


这是另一个段落


这段代码创建新的

元素:

var para=document.createElement("p");

如需向

元素添加文本,您必须首先创建文本节点。这段代码创建了一个文本节点:

var node=document.createTextNode("这是新段落。");

然后您必须向

元素追加这个文本节点:

para.appendChild(node);

最后您必须向一个已有的元素追加这个新元素。这段代码找到一个已有的元素:

var element=document.getElementById("div1");

这段代码向这个已有的元素追加新元素:

element.appendChild(para);

删除已有的 HTML 元素#####

如需删除 HTML 元素,您必须首先获得该元素的父元素:

实例#####


这是一个段落。


这是另一个段落。


这个 HTML 文档含有拥有两个子节点(两个

元素)的

元素:


这是一个段落。


这是另一个段落。



找到 id="div1" 的元素:

var parent=document.getElementById("div1");

找到 id="p1" 的

元素:

var child=document.getElementById("p1");

从父元素中删除子元素:

parent.removeChild(child);

提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。

这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:

var child=document.getElementById("p1");
child.parentNode.removeChild(child);

posted on 2016-07-27 11:08  前端园地  阅读(151)  评论(0)    收藏  举报