javascript给html添加结点操作

html页面中的内容一般都是事先编写好的,用浏览器打开页面的时候,直接加载到页面上面的。如果想在一个页面上有一些交互性的操作,这时候javascript就派上用场了。那如果想在展现好的html页面上动态增加段落内容或修改段落内容,OK,段落对象的appendChild方法要派上用场了。

<html>
	<head>
		<title>Adding Nodes</title>
	</head>
	<body>
		<form action="#">
			<p><textarea id="contentArea" rows="5" cols="30"></textarea></p>
			<input type="button" value="Add some text to the page">
		</form>
	</body>
</html>

如上代码,展现出来是

如果想通过Add some text to the page 按钮给页面添加一些内容,那该如何操作呢?

给Add some text to the page 按钮的单击事件绑定一个操作,让这个操作去给页面添加内容。

结点后添加
appendChild

获取要添加内容

添加哪里的内容呢?姑且,我们就先添加按钮上方的输入框中的内容吧。

var inText =document.getElementById("contentArea").value;

getElementById 方法获取到的是contentArea 这个id指向的对象,即页面上面的文本输入域。

将内容放在文本结点中

拿到值之后该怎么办呢?需要创建一个文本节点,将内容接收。

var newText =document.createTextNode(inText);

拿到的文本节点后,还无法将其显示在页面上。

将文本结点放在段落中

这时候还需要将它作为段落内容添加在页面的节点上。段落内容,那先创建一个段落吧。

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

这行代码创建了一个空的段落行,里面还没有内容。

段落对象中,有一个方法,叫做appendChild,是将文本节点信息绑定在段落上面的。

newGraf.appendChild(newText);

将段落挂载在页面依附点上

好了,内容绑定到段落上面了,但是段落似乎还是没有找到依附点啊。

我们就先把段落挂在form表单后面吧。如果form表单有id属性的话(假设其id为form1),我们就可以通过

var docForm = document.getElementById("form1"); 来获取到form,但是form没有id属性;假如form有name属性的话,我们也可以通过getElementsByName拿到同名的form数组,然后获取到我们需要的form,不巧,name属性也没有。

这时,从哪里作为突破口呢?

获取document中对象的常用方法有三个,其中一个是通过tagName来获取的。tagName获取对象时既不需要id属性,也不需要name属性,而是直接通过标签名称来获取对象的。

这里我们就通过form标签名来获取form对象。

document.getElementsByTagName("form")这个可以了吗?噢,忘了,通过tagName获取到的结果集是集合,是该标签名对象的集合,我们要获取的form是第几个呢?

第一个,那集合中就是第0个了,即document.getElementsByTagName("form")[0]。

好了,那我们的代码就是var docForm = document.getElementsByTagName("form")[0];

拿到段落要挂载的依附点后,需要将段落挂载在依附点上。

这时,需要再次用appendChild方法了,即
docForm.appendChild(newGraf)

整理后的完整代码为:

<html>
	<head>
		<title>Adding Nodes</title>
	</head>
	<body>
		<form action="#">
			<p><textarea id="contentArea" rows="5" cols="30"></textarea></p>
			<input type="button" value="Add some text to the page" onclick="addNodes()">
		</form>

		<script>
			function addNodes() {
				var inText = document.getElementById("contentArea").value;
				var newText = document.createTextNode(inText);

				var newGraf = document.createElement("p");
				newGraf.appendChild(newText);

				var docForm = document.getElementsByTagName("form")[0];
                docForm.appendChild(newGraf);
			}
		</script>
	</body>
</html>

结点前添加insertBefore

继续上面的代码,如果想把内容添加在form表单前面呢?

变动比较小,将docForm.appendChild(newGraf);

换为document.body.insertBefore(newGraf, docForm); 就可以了。

document.body 指的是document对象的body子对象,即html页面上面的body标签域。

insertBefore 方法与 appendChild 方法不同:appendChild方法传递一个参数,由依附点来调用,传递要挂载的段落;insertBefore 方法由document.body调用,传递两个参数,要挂在的段落内容 和 挂载的依附点名称,第一个参数为包含要添加内容的段落,第二个参数为依附点,即将第一个参数的段落插在第二个参数对象之前。

总结一下给html页面添加结点内容信息的步骤:

1 获取要添加的内容

2 将内容放在文本节点中

3 将文本节点放在段落中

4 将段落挂在页面的依附点上

时间: 2024-10-10 13:38:47

javascript给html添加结点操作的相关文章

javascript删除html结点操作

html页面上删除结点的操作跟添加结点中将段落添加在指定依附点之前相似,将段落添加在指定依附点之前代码为document.body.insertBefore(newGraf, docForm),删除的为document.body.removeChild(deleteNode)就可以了.使用的是removeChild 方法,删除的是body域里面的元素. 看个代码介绍一下吧. 假如有下面一段代码,内容有四段. <html> <head> <title>Deleting N

每天一个JavaScript实例-点击图片显示大图添加鼠标操作

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-点击图片显示大图添加鼠标操作</title> <style> img{padding:5px;width:100px;height:aut

JavaScript中常见的数组操作函数及用法

昨天写了个帖子,汇总了下常见的JavaScript中的字符串操作函数及用法.今天正好有时间,也去把JavaScript中常见的数组操作函数及用法总结一下,这样方便大家准备参考.如果恰好你也在准备各种笔试,希望对你有所帮助.同时,也欢迎补充. 1.数组创建 创建数组应该是最简单的了,有用数组字面量创建和数组构造函数两种方法,见下: var array1 = new Array(); var array2 = []; 上面是创建数组的最常见的两种方法,其中第二种方法因为简单直观而被开发者推崇.其中,

JS对select动态添加options操作[IE&amp;FireFox兼容]

<select id="ddlResourceType" onchange="getvalue(this)"> </select> 动态删除select中的所有options: document.getElementById("ddlResourceType").options.length=0; 动态删除select中的某一项option: document.getElementById("ddlResourc

妙味:结点选取、结点操作

(兼容)通用子结点选取.第一个子结点.最后一个子结点 (兼容)兄弟结点 父节点 (函数)通过样式选取 结点:添加.删除 结点属性:获取与设置 结点内容:获取与设置 // 结点选取 ================================================================================ // 子结点-------------------------------------------------------------------------

word中添加引文操作

word中添加引文操作 1.在文章末尾添加如下内容,并在他的下面添加一条被引文的格式

前端框架学习 --结点操作

结点操作 一.结点的创建 1 document.createElement( ) 标准:传入一个标签名,支持非标准的标签名 document.createElement("c") IE6-7:可以传入连同用户一起生成 document.createElement("<input name='name'>") eg: //http://thunderguy.com/semicolon/2005/05/23/setting-the-name-attribut

javascript中对字符串的操作总结

没听过一句话吗?程序员的世界,不处理字符串就是处理数组.这是群里的一位前辈和我说的,显然这和我之前理解的DOM是javascript的核心的不同的,看了几个面试题的内容,感觉前辈说的话非常的有道理,因此总结下,javascript中对字符串的操作. String类型 首先字符串类型是基本类型,但是在这里我们所说的是字符串的对象包装类型.因为只有引用类型才会有属性和方法.实际上每读取一个基本类型的同时都会创建一个对应的基本包装类型,从而让我们能够调用一些方法来操作数据.1.charAt() 和 c

JavaScript对滚动栏的操作

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>在div区域双击鼠标能够看到效果</title> <script type="text/JavaScript"> var currenTop,timer; function endScroll()