- 浏览: 270052 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (111)
- Ajax (3)
- Oracle (10)
- 云计算 (0)
- Java (10)
- jquery (3)
- 杂 (8)
- 算法导论 (1)
- Flex (3)
- JDBC (1)
- GIS概念 (0)
- CSS (1)
- CVS Eclipse (1)
- Hibernate (1)
- Struts2 (5)
- Servlet JSP (2)
- 数据结构与问题求解 (1)
- CentOS (3)
- C语言名题百则 (4)
- 设计模式 (1)
- Ubuntu (3)
- JavaScript (15)
- C语言 (12)
- 数据结构 (8)
- DOM (4)
- UML (2)
- C语言,C++ (3)
- MongoDB (6)
- 操作系统原理 (6)
- 计算机网络 (0)
- node.js (1)
- FreeBSD (1)
- MySQL (1)
- 通知帖 (0)
- 版本控制 (2)
- Linux (1)
- Vim (1)
- 形式语言与自动机 (0)
- 搜索引擎 (2)
- Haskell (4)
最新评论
-
arther8888:
niedj 写道请问,关于CachedThreadPool的方 ...
Java并发包中的几种ExecutorService -
Lyleluo:
深圳java群 397083120 求职,学习全包,外加小美女 ...
Java数组初始化 -
happyzjj:
楼主讲的很详细,不过关于CachedThreadPool我试的 ...
Java并发包中的几种ExecutorService -
niedj:
请问,关于CachedThreadPool的方式,楼主是否自己 ...
Java并发包中的几种ExecutorService -
garyzhang2681:
2.实现Runnable接口有试过t1.start(); t1 ...
Java多线程笔记1——多线程两种实现方式
之前学习了DOM中各种节点的访问方法,DOM所包含的内容远不止如此,DOM编程还包括当DOM树已经构建起来之后再添加节点。
1.创建新节点
document对象中包含了多个创建各种节点的方法。《JavaScript高级程序设计》中专门设计了一个表格,来说明每个方法的原型、作用、IE、Firefox、Opera、Safari等浏览器的支持情况。一眼望去几乎都是一些们获得支持的方法(很可能是因为这本书出的时候还很早,各种浏览器的版本都还很小)。
创建节点最有用的方法主要有:CreateElement()、CreateTextNode(),下面分别学习。
2.CreateElement()、CreateTextNode()、appendChild()
现在有如下的需求:在一个HTML的DOM树加载完成之后,添加一个<p>元素,元素的文本内容是"A New Element"
。原始的html如下:
<html> <head> <title>createElement() Demo</title> </head> <body> </body> </html>
现在要把<p>A New Element</p>添加到HTML的body中。步骤如下:
//第一步:创建p元素 var oP = document.createElement("p"); //第二步:创建文本节点 var oTxt = document.createTextNode("A New Element"); //第三步:将文本节点加到p元素的子元素列表中 oP.appendChild(oTxt); //第四步:将p元素添加到body的子元素列表中 document.body.appendChild(oP);
为了显示出添加的效果,在body中添加一个按钮,一点击就执行上述代码。完整的例子如下:
<html> <head> <title>createElement() Demo</title> <script type="text/javascript"> function createElementTest() { //第一步:创建p元素 var oP = document.createElement("p"); //第二步:创建文本节点 var oTxt = document.createTextNode("A New Element"); //第三步:将文本节点加到p元素的子元素列表中 oP.appendChild(oTxt); //第四步:将p元素添加到body的子元素列表中 document.body.appendChild(oP); } </script> </head> <body> <input type="button" value="添加" onclick="createElementTest()"/> </body> </html>
3. removeChild(),replaceChild(),insertBefore()方法
既然能添加节点,自然也能删除节点。要删除某个节点,可以调用其parentNode的removeChild()方法删除掉该节点。依然以上面的例子来学习。
//第一步:获取p元素 var oP = document.body.getElementsByTagName("p").item(0); //第二步:获取p元素的父节点 var pNode = oP.parentNode; //第三步:调用父节点的删除方法 pNode.removeChild(oP);
完整的代码如下:
<html> <head> <title>createElement() Demo</title> <script type="text/javascript"> function createElementTest() { //第一步:创建p元素 var oP = document.createElement("p"); //第二步:创建文本节点 var oTxt = document.createTextNode("A New Element"); //第三步:将文本节点加到p元素的子元素列表中 oP.appendChild(oTxt); //第四步:将p元素添加到body的子元素列表中 document.body.appendChild(oP); } function removeChildTest() { //第一步:获取p元素 var oP = document.body.getElementsByTagName("p").item(0); //第二步:获取p元素的父节点 var pNode = oP.parentNode; //第三步:调用父节点的删除方法 pNode.removeChild(oP); } </script> </head> <body> <input type="button" value="添加" onclick="createElementTest()"/> <input type="button" value="删除" onclick="removeChildTest()"/> </body> </html>
此外,我们也可以不删除节点,而只是替换节点。当然,这个也需要通过调用被替换节点的父节点的方法来实现。现在我们要吧p元素的内容替换成Hello,World!。replaceChild()方法有两个参数:新节点,被替换节点。代码如下:
//第一步:创建需要替换的节点 var newTxt = document.createTextNode("Hello,World!"); //第二步:获取到被替换的节点 var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); //第三步:获取到需要被替换节点的父节点 var oP = document.body.getElementsByTagName("p").item(0); //第四步:替换文本节点 oP.replaceChild(newTxt,oldTxt);
再添加一个按钮来触发替换文本的方法:
<html> <head> <title>createElement() Demo</title> <script type="text/javascript"> function createElementTest() { //第一步:创建p元素 var oP = document.createElement("p"); //第二步:创建文本节点 var oTxt = document.createTextNode("A New Element"); //第三步:将文本节点加到p元素的子元素列表中 oP.appendChild(oTxt); //第四步:将p元素添加到body的子元素列表中 document.body.appendChild(oP); } function removeChildTest() { //第一步:获取p元素 var oP = document.body.getElementsByTagName("p").item(0); //第二步:获取p元素的父节点 var pNode = oP.parentNode; //第三步:调用父节点的删除方法 pNode.removeChild(oP); } function replaceChildTest() { //第一步:创建需要替换的节点 var newTxt = document.createTextNode("Hello,World!"); //第二步:获取到被替换的节点 var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); //第三步:获取到需要被替换节点的父节点 var oP = document.body.getElementsByTagName("p").item(0); //第四步:替换文本节点 oP.replaceChild(newTxt,oldTxt); } </script> </head> <body> <input type="button" value="添加" onclick="createElementTest()"/> <input type="button" value="删除" onclick="removeChildTest()"/> <input type="button" value="替换" onclick="replaceChildTest()"/> </body> </html>
最后,我们还可以在一个节点之前插入另一个节点。这就是方法insertBefore()的作用。这个方法也有两个参数:新节点和插在哪个节点之前。接着上面的例子,我们在第一个p元素之前插入另一个p元素,元素的文本是a new element。
代码如下:
var newNode = document.createElement("p"); var newTxt = document.createTextNode("a new element"); newNode.appendChild(newTxt); var oldNode = document.body.getElementsByTagName("p")[0]; var pNode = oldNode.parentNode; pNode.insertBefore(newNode,oldNode);
完整的代码如下:
<html> <head> <title>createElement() Demo</title> <script type="text/javascript"> function createElementTest() { //第一步:创建p元素 var oP = document.createElement("p"); //第二步:创建文本节点 var oTxt = document.createTextNode("A New Element"); //第三步:将文本节点加到p元素的子元素列表中 oP.appendChild(oTxt); //第四步:将p元素添加到body的子元素列表中 document.body.appendChild(oP); } function removeChildTest() { //第一步:获取p元素 var oP = document.body.getElementsByTagName("p").item(0); //第二步:获取p元素的父节点 var pNode = oP.parentNode; //第三步:调用父节点的删除方法 pNode.removeChild(oP); } function replaceChildTest() { //第一步:创建需要替换的节点 var newTxt = document.createTextNode("Hello,World!"); //第二步:获取到被替换的节点 var oldTxt = document.body.getElementsByTagName("p").item(0).childNodes.item(0); //第三步:获取到需要被替换节点的父节点 var oP = document.body.getElementsByTagName("p").item(0); //第四步:替换文本节点 oP.replaceChild(newTxt,oldTxt); } function insertBeforeTest() { var newNode = document.createElement("p"); var newTxt = document.createTextNode("a new element"); newNode.appendChild(newTxt); var oldNode = document.body.getElementsByTagName("p")[0]; var pNode = oldNode.parentNode; pNode.insertBefore(newNode,oldNode); } </script> </head> <body> <input type="button" value="添加" onclick="createElementTest()"/> <input type="button" value="删除" onclick="removeChildTest()"/> <input type="button" value="替换" onclick="replaceChildTest()"/> <input type="button" value="插入" onclick="insertBeforeTest()"/> </body> </html>
参考书目:
《JavaScript高级编程》
发表评论
-
JavaScript变量与作用域
2012-01-19 01:13 10751.JavaScript的变量类型 JavaScr ... -
JavaScript DOM学习笔记6——HTML DOM
2011-11-25 16:47 1094DOM其实是一套操作XML文档的标准,不同语言 ... -
JavaScript DOM学习笔记4——访问指定节点
2011-11-15 21:35 1250DOM中访问指定节点主要需要用到以下几个函数: 1.g ... -
JavaScript DOM学习笔记3——DOM属性操作
2011-11-12 23:24 1075Node接口本身有一个attrib ... -
JavaScript DOM学习笔记2——DOM的使用
2011-11-11 20:12 26281.HTML中的DOM W3C再开发XML ... -
JavaScript DOM学习笔记1——DOM节点层次
2011-11-10 22:40 1294当讨论DOM树的时候,一般讨论的是节点的层次。DOM定义了No ... -
JavaScript BOM学习笔记8——navigator对象和screen对象
2011-10-26 00:16 10821.navigator对象 navigator对象是 ... -
JavaScript BOM学习笔记7——location对象
2011-10-26 00:04 969location对象既是window对象的属性,又是docum ... -
JavaScript BOM学习笔记6——document对象
2011-10-25 01:37 1165document对象实际上是window对象的属性 ... -
JavaScript BOM学习笔记——window对象5
2011-10-24 23:55 9201.浏览器状态栏 ... -
JavaScript BOM学习笔记——window对象4
2011-10-20 19:28 9711.系统对话框:window.alert(),window.c ... -
JavaScript BOM学习笔记——window对象3
2011-10-20 19:12 12501.导航和打开新窗口 ... -
JavaScript BOM学习笔记——window对象2
2011-10-19 15:00 9421.窗口操作: ... -
JavaScript BOM学习笔记——window对象1
2011-10-19 14:19 1388BOM:Browser Object Model,浏览器对象模 ...
相关推荐
一、DOM基础1.节点(node)层次Document--最顶层的节点,所有的其他节点都是附属于它的。DocumentType--DTD引用(使用<!DOCTYPE>语法)的对象表现形式,它不能包含子节点。DocumentFragment--可以像Document...
本文实例讲述了JavaScript DOM基础操作。分享给大家供大家参考,具体如下: 一、子节点 1、元素节点、文本节点 实例01 html <body> 文本节点1 <li></li> 文本节点2<li></li> 文本节点3<li></li> 文本节点4...
韩顺平老师的javascript之dom编程的笔记
DOM文档对象模型是HTML和XML的应用程序接口(API),DOM将整个页面规划成由节点层次构成的文档。DOM对象给予开发者对HTML的访问权限,并且使开发者能将HTML作为XML文档来处理和查看。DOM对象是与语言无关的API,意味...
如果父节点没有子节点, 则firstChild和lastChild都为nullparentNode 父节点previousSibling 第一个节点的previ
本文实例讲述了JavaScript学习笔记之DOM操作。分享给大家供大家参考,具体如下: 一、DOM概念 1. “D”:Docment,指的是文档 2. “O”:Object,指的是对象,在javascript有三种对象:用户定义对象、内建对象...
3) Node类型: ①Node是DOM中各种节点类型的基类型,共享相同的基本属性和方法。 □ Node.Element_NODE(1); □ Node.ATTRIBUTE_NODE(2); □ Node.TEXT_NODE(3); □ Node.CDATA_SECTION_NODE(4); □ Node.ENTITY_RE
5. 其他 JavaScript 库 3 6. 多个库之间的冲突 3 7. jQuery对象和DOM对象 3 第2章. jQuery选择器 4 1. jQuery优点 4 2. 基本选择器 4 3. 层次选择器 4 4. 过滤选择器 5 5. 内容过滤选择器 5 6. 可见性过滤选择器 5 7...
利用DOM方法创建元素节点,通常要将document.createElement()、document.createTextNode()、appendChild()配合使用,十分麻烦。 而jQuery使用$就可以直接创建DOM元素 代码如下: var oNewP = $(“使用jQuery创建的...
html部分代码: 当点击show按钮时,触发showValue函数,将input value的值动态添加到id=”text”的元素节点中! 代码如下: <p> <...</span> </p> ”text”></p> javascript 部分代码: 页面加载时,使inpu
Dom createElement()、createTextNode()、appendChild()、removeChild()、replaceChild()、insertBefore()、createDocumentFragment() //创建新节点 function CreatNode() { var oP = document.createElement(“p”)...
概要:javascript的组成、 各个组成部分的作用 、 一、javascript的组成 javascript ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) 1.1ECMAScript ECMAScript是通过ECMA-262标准化的脚本...
Javascript入门学习第一篇 js基础Javascript入门学习第二篇 js类型...js dom实例操作Javascript入门学习第八篇 js dom节点属性说明Javascript入门学习第九篇 Javascript DOM 总结jQuery基础教程笔记适合js新手
学习Javascript要分清 1. js语言本身的语法 2. DOM对象(把body,div,p等节点树看成一个对象) 3. BOM对象(把浏览器的地址栏,历史记录,DOM等庄子啊一个对象)
事件流 1.1事件冒泡(IE事件流) □事件冒泡(event bubbling),即事件开始时由最具体的元素(文档中嵌套层次最深的那个节点)接受,然后逐级向上传播到较为不具体的节点(文档)。 □所有浏览器均支持事件冒泡。...
{14.4}dom4j}{207}{section.14.4} {14.5}XPath}{210}{section.14.5} {14.6}apache.commons}{211}{section.14.6} {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{chapter.16} {16.1}...
这个文档包含了HTML/css的一些基础,还有JavaScript中的基础语法、DOM、BOM还有一些学习js中面向对象、和移动web开发、AJAX、jQuery的一些总结,还有些Web前端与移动开发面试宝典; 6、什么是事件冒泡/捕获? 事件...
XPAGE学习笔记 1 Theme 2 2 在Xpage中使用Dojo 2 2.1 加载dojo.js 2 2.2 设置应用程序主题引入tundra.css 2 2.3 设置xpage属性引入dojo模块 3 2.4 Xpage的页面html代码 4 2.5 在xpage中使用dojo编程 4 2.5.1 按钮...