- 浏览: 427096 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lanlansnss:
说真的。 木有看懂哇。
【辞职】你谂清楚未? -
fei441544558:
isset($_SESSION['submit_tim ...
PHP防止用户刷新页面,重复提交表单内容 -
ngn9999:
天下文章一大抄
flash遮盖div层在IE和FF下解决办法 -
阳光空气水:
嗯,原来是道友。
FireBug - Javascript 的調試工具 [轉載] -
osacar:
楼主的头像里人物是不是史艳文里的?
PHP程序如何防止站外提交数据
四个非常适用的DOM方法:getElementById, getElementByTagName, getAttribute和setAttribute
比較有用的方法:
1、新建一个dom元素,参数为标签名——document.createElement("tagName")
2、把一个元素添加到某个元素下面——parentElement.appendChild(childElement)
3、获得父元素——childElement.parentNode
4、获得第一个子元素——parentElement.firstChild
5、获得所有的标签为tag的子元素——parentElement.getElementsByTagName("tag")
6、还有就是大家熟悉的document.getElementById("xid")和document.getElementsByName("yname")
文档:DOM中的”D”
DOM是”Document Object Model”(文档对象模型)的首字母所写。如果没有document(文档),DOM也无从谈起。
对象: DOM中的”O”
“对象”是一种独立的数据集合。与某个特定对象相关联的变量被称为这个对象的属性;可以通过某个特定的对象去调用的函数被称为这个对象的方法。
JS里,对象分为三种类型:
用户定义对象: 程序员自己创建的对象。
内建对象: 内建在JS语言里的丢向,如Array,Math
宿主对象:浏览器提供的对象
宿主对象中,最基础的是window对象。
window对象对应着浏览器窗口的本身,这个对象的属性和方法通常被称为BOM(浏览器对象模型)。
模型: DOM中的”M”
M代表着”Model”,但说它代表着”Map”也可以。含义都是某种事物的表现形式。DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过JS去读取这张地图。
先了解表述这个地图的记号的意义:
DOM把一份文档表示为一棵树,这是我们理解和运用这一模型的关键。
节点
节点(note)这个名词来自网络理论,代表着网络中的一个连接点。网络是由节点构成的集合。DOM中的节点类型还包含着其他类型的节点。
元素节点
DOM的原子是元素节点。
一个页面是由元素来构成的。而各种标签则提供了元素的名字。元素可以包含其他的元素。html元素是节点树的根元素。
文本节点
文本节点总是被包含在元素节点的内部。但并非所有的元素节点都包含有文本节点。
属性节点
注释也是一种节点类型。元素都或多或少的有一些属性。我们可以利用这个属性对包含在元素里的东西做出准确的描述。并非所有的元素都包含着属性,但素有的属性都会被包含在元素里。
getElementById()方法
DOM提供了一个名为getElementById()的方法,这个方法将返回一个与那个有着给定id属性值的元素节点相对应的对象。
这个方法是与document对象相关联的函数。在脚本代码里,函数名的后面必须跟有一组圆括号。这组圆括号包含着函数的参数。getElementById()方法只有一个参数:你想获得那个元素的id属性值。而且必须放在单引号或双引号里。
document.getElementById(”purchases”)
这个调用将返回一个对象,这个对象对应着document对象里的一个独一无二的元素。
我们还可以利用DOM提供的另外一种方法来提取对象
getElementsByTagName()方法
getElementByTagName()方法将返回一个对象数组,每个对象分别对应着文档里有着给定标签的一个元素。它的参数是XHTML标签的名字:
element.getElementsByTagName(tag)
这个方法返回的是一个数组。
document.getElementsByTagName(”li”)
这个调用将返回一个对象数组,每个对象分别对应着document对象中一个列表项(li)
我们可以利用length属性查出这个数组的元素个数。
for (var I =0 ; I < document.getElementsByTagName(”li”).length; I++) {
alert (typeof document.getElementsByTagName(”li”)[i]);
}
将方法名称赋值给变量,可以缩减打字量并提高函数的可读性,如
var items = document.getElementsByTagName(”li”);
for (var I = 0 ; I < itemts.length; i++) {
alert (typeof items[i]);
}
alert(document.getElementsByTagName(”*”).length);
可以让我们方便的获得一个页面总共有多少个元素节点。
如果只想知道其id属性值是purchase的元素包含着多少个列表项(li)的话,需要更具体的对象来调用这个方法:
var shopping = document.getElementById(”purchase”);
var items = shopping.getElementsByTagName(”*”);
在这两条语句执行完毕后,items数组将只包含其id属性值是purchase的无序清单里的元素。
3.4 趁热打铁
简要总结:
一份文档就是一棵节点树
节点分为不同类型:元素节点,属性节点和文本节点等。
getElementById()方法将返回一个对象,该对象对应着文档里的一个特定的元素节点
getElementByTagName()方法将返回一个对象数组,它们分别对应着文档里的一个特定的元素节点
这些节点中的每个都是对象
3.4.1 getAttribute()方法
我们可以利用getAttribute()方法把获得的元素对象各种属性值查询出来。
var paras = document.getElementsByTagName(”p”);
for (var i = 0; i < paras.length; i++) {
alert (paras[i].getAttribute(”title”));
}
null是JS语句中的空值,若文档中含有多个未定义title属性的p标签,则会显示null。让我们重新修改这段代码,使其只在title属性存在时才弹出消息,同时提高可读性。
var paras = document.getElementsByTagName(”p”);
for (var i = 0; i < paras.length; i++) {
var title_text = paras[i].getAttribute(”title”);
if (title_text != null) {
alert(title_text);
}
}
进一步把代码缩短:当检查某项数组是否是null值时,我们其实是在检查它是否存在。这种检查可以简化为直接把被检查的数据用作if语句的条件。
if(title_text != null)可以替换为 if(title_text)
3.4.2 setAttribute()方法
修改节点属性值的方法。
此方法也是只能通过元素节点对象调用的函数,需要向它传递两个参数:
object.setAttribute(attribute, value);
下面的语句我们首先获得purchase属性的元素,然后修改这个元素的属性值。
var shopping = document.getElementById(”purchase”);
shopping.setAttribute(”title”, “a list of goods”);
若一个元素没有setAttribute()方法中定义的属性值,则会先创建这个属性,然后再赋值。
一个细节: setAttribute()方法对文档的修改,将似的文档在浏览器窗口里的显示效果发生变化,但是源代码中不会有任何修改,也就是说,这个方法的修改不会影响任何原来的文档数据,这个是DOM的工作模式决定的:先加载文档的静态内容,再以动态方式对他们进行刷新,刷新不会影响文档的静态内容。
第三章总结:
getElementById()方法
getElementsByTagName()方法
getAttribute()方法
setAttribute()方法
这四个方法将是DOM的基石。
//實例
比較有用的方法:
1、新建一个dom元素,参数为标签名——document.createElement("tagName")
2、把一个元素添加到某个元素下面——parentElement.appendChild(childElement)
3、获得父元素——childElement.parentNode
4、获得第一个子元素——parentElement.firstChild
5、获得所有的标签为tag的子元素——parentElement.getElementsByTagName("tag")
6、还有就是大家熟悉的document.getElementById("xid")和document.getElementsByName("yname")
文档:DOM中的”D”
DOM是”Document Object Model”(文档对象模型)的首字母所写。如果没有document(文档),DOM也无从谈起。
对象: DOM中的”O”
“对象”是一种独立的数据集合。与某个特定对象相关联的变量被称为这个对象的属性;可以通过某个特定的对象去调用的函数被称为这个对象的方法。
JS里,对象分为三种类型:
用户定义对象: 程序员自己创建的对象。
内建对象: 内建在JS语言里的丢向,如Array,Math
宿主对象:浏览器提供的对象
宿主对象中,最基础的是window对象。
window对象对应着浏览器窗口的本身,这个对象的属性和方法通常被称为BOM(浏览器对象模型)。
模型: DOM中的”M”
M代表着”Model”,但说它代表着”Map”也可以。含义都是某种事物的表现形式。DOM代表着被加载到浏览器窗口里的当前网页:浏览器向我们提供了当前网页的地图(或者说模型),而我们可以通过JS去读取这张地图。
先了解表述这个地图的记号的意义:
DOM把一份文档表示为一棵树,这是我们理解和运用这一模型的关键。
节点
节点(note)这个名词来自网络理论,代表着网络中的一个连接点。网络是由节点构成的集合。DOM中的节点类型还包含着其他类型的节点。
元素节点
DOM的原子是元素节点。
一个页面是由元素来构成的。而各种标签则提供了元素的名字。元素可以包含其他的元素。html元素是节点树的根元素。
文本节点
文本节点总是被包含在元素节点的内部。但并非所有的元素节点都包含有文本节点。
属性节点
注释也是一种节点类型。元素都或多或少的有一些属性。我们可以利用这个属性对包含在元素里的东西做出准确的描述。并非所有的元素都包含着属性,但素有的属性都会被包含在元素里。
getElementById()方法
DOM提供了一个名为getElementById()的方法,这个方法将返回一个与那个有着给定id属性值的元素节点相对应的对象。
这个方法是与document对象相关联的函数。在脚本代码里,函数名的后面必须跟有一组圆括号。这组圆括号包含着函数的参数。getElementById()方法只有一个参数:你想获得那个元素的id属性值。而且必须放在单引号或双引号里。
document.getElementById(”purchases”)
这个调用将返回一个对象,这个对象对应着document对象里的一个独一无二的元素。
我们还可以利用DOM提供的另外一种方法来提取对象
getElementsByTagName()方法
getElementByTagName()方法将返回一个对象数组,每个对象分别对应着文档里有着给定标签的一个元素。它的参数是XHTML标签的名字:
element.getElementsByTagName(tag)
这个方法返回的是一个数组。
document.getElementsByTagName(”li”)
这个调用将返回一个对象数组,每个对象分别对应着document对象中一个列表项(li)
我们可以利用length属性查出这个数组的元素个数。
for (var I =0 ; I < document.getElementsByTagName(”li”).length; I++) {
alert (typeof document.getElementsByTagName(”li”)[i]);
}
将方法名称赋值给变量,可以缩减打字量并提高函数的可读性,如
var items = document.getElementsByTagName(”li”);
for (var I = 0 ; I < itemts.length; i++) {
alert (typeof items[i]);
}
alert(document.getElementsByTagName(”*”).length);
可以让我们方便的获得一个页面总共有多少个元素节点。
如果只想知道其id属性值是purchase的元素包含着多少个列表项(li)的话,需要更具体的对象来调用这个方法:
var shopping = document.getElementById(”purchase”);
var items = shopping.getElementsByTagName(”*”);
在这两条语句执行完毕后,items数组将只包含其id属性值是purchase的无序清单里的元素。
3.4 趁热打铁
简要总结:
一份文档就是一棵节点树
节点分为不同类型:元素节点,属性节点和文本节点等。
getElementById()方法将返回一个对象,该对象对应着文档里的一个特定的元素节点
getElementByTagName()方法将返回一个对象数组,它们分别对应着文档里的一个特定的元素节点
这些节点中的每个都是对象
3.4.1 getAttribute()方法
我们可以利用getAttribute()方法把获得的元素对象各种属性值查询出来。
var paras = document.getElementsByTagName(”p”);
for (var i = 0; i < paras.length; i++) {
alert (paras[i].getAttribute(”title”));
}
null是JS语句中的空值,若文档中含有多个未定义title属性的p标签,则会显示null。让我们重新修改这段代码,使其只在title属性存在时才弹出消息,同时提高可读性。
var paras = document.getElementsByTagName(”p”);
for (var i = 0; i < paras.length; i++) {
var title_text = paras[i].getAttribute(”title”);
if (title_text != null) {
alert(title_text);
}
}
进一步把代码缩短:当检查某项数组是否是null值时,我们其实是在检查它是否存在。这种检查可以简化为直接把被检查的数据用作if语句的条件。
if(title_text != null)可以替换为 if(title_text)
3.4.2 setAttribute()方法
修改节点属性值的方法。
此方法也是只能通过元素节点对象调用的函数,需要向它传递两个参数:
object.setAttribute(attribute, value);
下面的语句我们首先获得purchase属性的元素,然后修改这个元素的属性值。
var shopping = document.getElementById(”purchase”);
shopping.setAttribute(”title”, “a list of goods”);
若一个元素没有setAttribute()方法中定义的属性值,则会先创建这个属性,然后再赋值。
一个细节: setAttribute()方法对文档的修改,将似的文档在浏览器窗口里的显示效果发生变化,但是源代码中不会有任何修改,也就是说,这个方法的修改不会影响任何原来的文档数据,这个是DOM的工作模式决定的:先加载文档的静态内容,再以动态方式对他们进行刷新,刷新不会影响文档的静态内容。
第三章总结:
getElementById()方法
getElementsByTagName()方法
getAttribute()方法
setAttribute()方法
这四个方法将是DOM的基石。
//實例
<SCRIPT LANGUAGE="JavaScript"> //列表内容 var listItems=['aaa','bbb','ccc','ddd','eee']; //创建一个ol列表,上面的数组为每个li的内容 function createList() { var myol=document.createElement("ol"); for(var it in listItems) { var tli=document.createElement("li"); tli.innerHTML=listItems[it]; //鼠标单击时调用changeColor函数 tli.onclick=changeColor; //鼠标双击时调用removeMe函数 tli.ondblclick=removeMe; myol.appendChild(tli); } document.body.appendChild(myol); } function changeColor() { //changeColor是自己加的,考虑到undefinded也是false,所以没有初始化。 //动态语言就是好,对象的属性和方法可以随便加。 if(this.changeColor) { this.style.background="yellow"; this.changeColor=false; } else { this.style.background="lightgreen"; this.changeColor=true; } } function removeMe() { //先找到父节点,再用父节点删除自己 var p=this.parentNode; p.removeChild(this); //如果这个ul元素下的li子元素已经删除光了,就把这个ul元素也删掉。 if(p.getElementsByTagName('li').length==0) { p.parentNode.removeChild(p); } } </SCRIPT> </HEAD> <BODY> <button onclick="createList()">创建列表button> </ BODY> </HTML>
发表评论
-
JavaScript中使用&&和|| 的怪異特性_ppk筆記
2009-01-20 17:46 1102大多數瀏覽器保存事件目標在evt.target中,但是IE使用 ... -
《ppk 谈 javascript》读书笔记 byWasabi
2009-01-06 23:28 1240三个分离 1. 表现与结构分离 (CSS 与其HTML); 2 ... -
Javascript Debug Toolkit使用说明
2008-12-01 14:17 14681. Javascript Debug Toolkit介绍 ... -
SWFObject 1.5官方文档汉化版
2008-11-05 11:21 2364SWFObject是一个用于在HTML中方面插入Adobe F ... -
强烈推荐:240多个jQuery插件
2008-11-04 22:42 1445概述 jQuery 是继 prototype 之后又一个优秀 ... -
一個灰常好用的jquery操作select插件
2008-10-31 14:47 8184/* 文件名:jquery.liu.select.js ... -
jQuery使用Ajax的實際例子
2008-09-28 16:24 2628<SCRIPT src="../js/jq ... -
JavaScript高级程序设计读书笔记 -- IE事件对象与DOM事件对象的相似性
2008-08-28 13:31 13451. 获取事件类型 这样可以在任何一种浏览器中获取事件的类型: ... -
JavaScript高级程序设计读书笔记 -- 获取事件对象
2008-08-28 12:47 1357事件对象 基于不同浏览器的开发人员都知道,获取信息是很重要的。 ... -
javascript 保留小數點問題
2008-08-22 17:57 2172之前在項目中遇到的小數問題,在這裡記錄一下。 var a ... -
flash遮盖div层在IE和FF下解决办法
2008-07-19 17:10 4548今天测试div层和flash的交互,发现div层总是被flas ... -
javascript 中的 urlencode
2008-07-18 15:34 2045遇到一个需要用Javascript将文字转换成asp中的url ... -
jQuery學習文檔收集
2008-07-09 11:17 1329我修改的jQuery教程 江南白衣博物馆-JQuery資料 ... -
JavaScript頁面效果收集
2008-05-23 09:42 0AJAX弹出提示信息效果 -
JavaScript中BOM对象应用的一些实例
2008-05-19 00:12 1518//window.open('http://wasab ... -
JavaScript中處理字符串的常用方法
2008-05-09 10:44 2291String類型的主要函數 /* 字符串連接用 + 運算 ... -
理解JavaScript的5种原始类型
2008-05-08 22:16 1240primitve type : 即 Undefined,N ... -
JavaScript中的undefined類型
2008-05-08 17:47 1092undefined類型隻有一個值,即nudefined。 當聲 ... -
JavaScript学习文章收集
2008-05-06 21:31 1001javascript学习笔录(一) javascript学 ... -
DOM属性用法速查手册
2008-04-16 14:46 1064object 返回包含的对象。 offscreenBuffe ...
相关推荐
"DOM文档对象模型中文手册"是学习和查询DOM相关知识的重要资源,提供了关于DOM节点操作、事件处理、选择和遍历元素等方面的详细解释和示例。CodePub.chm格式的文件通常是一个帮助文档,用户可以通过它快速查找DOM...
### W3C DOM模型参考手册知识点详解 #### 一、前言 本手册是一份针对W3C DOM(文档对象模型)模型的详尽参考指南,重点介绍了Gecko引擎所支持的DOM API特性。这份资料最初来自Mozilla开发网站,但由于各种原因,...
**W3C标准文档——DOM模型对象详解** 在Web开发领域,W3C(World Wide Web Consortium)是一个至关重要的组织,它制定了一系列的开放标准,包括HTML、CSS、XML以及我们今天要讨论的DOM(Document Object Model)。...
### JavaScript文档对象模型(DOM)详解 #### 一、引言 文档对象模型(Document Object Model,简称DOM),是W3C为了...然而,掌握DOM的全部特性并非一日之功,需要开发者在实践中不断探索和学习,才能充分利用其潜力。
DOM(Document Object Model),文档对象模型,是针对XML的基于树的应用程序接口(API),它的实现有很多(各语言基本都有自己的实现),我们这儿讨论的是javascript中或者说xhtml(html)对DOM的实现..........
通过阅读《常用手册 DOM文档对象模型》,开发者不仅可以深入理解DOM的基本概念,还能掌握实际操作DOM的技巧,从而提高网页和应用程序的交互性和动态性。此外,对于学习前端开发和Web应用的人员来说,这是一份非常...
总结一下,DOM模型是描述HTML或XML文档结构的数据模型,而Prototype是一个JavaScript库,它提供了一套强大的工具来操作DOM,并实现了面向对象编程的特性。通过学习Prototype,开发者可以更高效地进行前端开发,提升...
6. **事件处理**:解释DOM4j的事件模型,如何监听和处理XML解析过程中的事件。 7. **源码分析**:探讨Dom4j的内部实现,例如解析过程、内存管理策略,以及一些关键类的源码解读。 8. **实际应用**:通过示例展示...
DOM4J是基于DOM模型的,但比标准DOM更轻量级,性能更好,且更加易于使用。在深入探讨DOM4J的知识点之前,我们先理解一下XML的基础概念。 XML(Extensible Markup Language)是一种用于标记数据的语言,常用于存储和...
3. **DOM与SAX解析:** DOM(Document Object Model)是XML的一种树形模型,将整个XML文档加载到内存中,便于随机访问。而SAX是事件驱动的解析器,逐行读取XML,适用于大文件,但不支持随机访问。 4. **Dom4j解析...
DOM,全称 Document Object Model,即文档对象模型,是W3C组织定义的一个标准,它为HTML和XML文档提供了一个结构化的表示,并定义了如何通过JavaScript或其他脚本语言来访问和操作这个结构。在HTML中,DOM允许我们...
10. **学习资源**:`Dom文档对象模型-2010版.chm`可能是关于DOM的一个参考资料,`.chm`是Windows的帮助文件格式,包含详细的DOM信息;`说明.htm`可能提供了关于如何使用这些资料的指导;`aspjzy.com.txt`可能是相关...
XMLDOM(XML Document Object Model)是用于处理XML文档的一个接口,它是W3C组织定义的一套标准,允许程序和脚本...通过学习这个手册,你可以掌握如何有效地使用XMLDOM来解析、操作XML,以及如何将其应用于Web开发中。
文档对象模型(DOM)是JavaScript在浏览器环境中与HTML文档交互的核心机制。DOM是一种标准,它定义了HTML和XML文档的结构,并提供了编程接口,使得我们可以用脚本语言(如JavaScript)来操纵文档的内容、结构和样式...
手册的2010版可能还包含了一些当时最新的DOM API和最佳实践,对于开发者学习和理解DOM模型具有很高的参考价值。通过深入学习和实践,开发者可以更高效地操纵网页内容,实现丰富的交互效果和动态更新。
在压缩包中的"DOM文档对象模型参考手册.chm"文件,通常包含了详细的DOM API参考、示例代码以及最佳实践,是学习和查询DOM知识的重要资源。通过阅读这个手册,开发者能够更深入地理解DOM的工作原理,提高在Web开发中...
**Dom4j学习教程+API** Dom4j是一款强大的Java XML处理库,它提供了一种灵活的方式来处理XML文档。这个教程结合API文档,为开发者提供了深入理解并掌握Dom4j的绝佳资源。以下是对Dom4j核心概念和功能的详细说明。 ...
首先,DOM4J的核心在于其对DOM模型的优化,使得在处理大型XML文件时性能更优,内存占用更低。在"dom4j-2.1.3.jar"文件中,包含了DOM4J库的所有类和方法,可以用于构建、解析和操作XML文档。这个版本的DOM4J在前一...
【学习 XML DOM】.pdf 是一份关于 XML DOM(文档对象模型)的学习资料,XML DOM 是一种 W3C 标准,它定义了如何访问和操作XML文档的规范。DOM 将XML文档解析成一个树形结构,每个组成部分都称为一个节点。理解XML ...