JavaScript针对网页节点的增删改查用法实例

时间:2021-05-26

本文实例讲述了JavaScript针对网页节点的增删改查用法。分享给大家供大家参考。具体分析如下:

一、基本概念

这部分也就是所谓的“HTML DOM”,所谓HTML DOM也就是Web页面加载规则,是一个规则,也就是网页组成的基本公式。

也就是所有网页都必须按照:<html><body></body></html>……的规则编写,也按照这样的规则加载。

所谓的“网页节点”,也叫“DOM节点”的通俗解释,例如html节点下的内容就是<html></html>之间所有内容,body节点下的内容就是<body></body>之间的所有内容。

HTML DOM是这样规定的:1、整个文档是一个文档节点;2、每个 HTML 标签(意指<body><table>等html标签,而不是单纯的<html>标签)是一个元素节点;3、包含在 HTML 元素中的文本是文本节点;4、每一个 HTML 属性是一个属性节点
譬如,可以把某个页面画成如下的DOM节点树:

HTML DOM的官方定义如下:HTML DOM是HTML Document Object Model(文档对象模型)的缩写,HTML DOM则是专门适用与HTML/XHTML的文档对象模型。熟悉软件开发的人员可以将HTML DOM理解为网页的API。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。 例如Javascript就可以利用HTML DOM动态的修改网页。

而使用JavaScript能轻松对于这些DOM节点进行网页节点的增删改查的控制。

二、基本目标

使用JavaScript对网页的节点进行增删改查的操作。在一个网页中有:

1、”增加节点“按钮,此按钮在增加节点的同时,增加与”替换按钮“相关联的下拉菜单中的节点选项。如果网页中存在着9个节点,则不让添加并弹窗警告。

2、”删除最后一个节点“按钮,此按钮在减少节点的同时,减少与”替换按钮“相关联的下拉菜单中的节点选项。

3、”替换节点内容“按钮,首先选择需要操作的节点,然后输入要替换的内容,就会替换相应的节点。

4、如果网页中没有任何节点,则不让删除与替换,并弹窗警告。

三、制作过程

不用配置任何环境,直接在网页中写入如下代码,具体代码如下,下面再一部分一部分进行说明:
复制代码 代码如下:<!DOCTYPE html PUBLIC "-//W3C//pD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/pD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jsdivnode</title>
<script type="text/javascript">
var i = 0;

function createnode() {
if (i < 9) {
i++;
var option = document.createElement("option");
option.value = i;
option.innerHTML = "Node" + i.toString();
document.getElementById("number").appendChild(option);

var p = document.createElement("p");
p.innerHTML = "Node" + i.toString();
document.getElementById("d").appendChild(p);
} else
alert("爷行行好了,太多节点,臣妾做不到啊~");
}

function removenode() {
if (i > 0) {
i--;
var s = document.getElementById("number");
s.removeChild(s.lastChild);
var d = document.getElementById("d");
d.removeChild(d.lastChild);
} else
alert("没有节点,删个毛线啊~");



}

function replacenode() {
if (i > 0) {
var d = document.getElementById("d");
var p = document.createElement("p");
p.innerHTML = document.getElementById("text").value;
var ps = d.getElementsByTagName("p")
d.replaceChild(p, ps[document.getElementById("number").value - 1]);
} else
alert("没有节点,替换个毛线啊~");
}
</script>
</head>

<body>
<input type="button" value="创建节点" onclick="createnode()" />
<input type="button" value="删除最后一个节点" onclick="removenode()" />
<select id="number"></select>
<input type="text" id="text" />
<input type="button" value="替换节点内容" onclick="replacenode()" />
<div id="d">
</div>
</body>
</html>

1、<body>节点
复制代码 代码如下:<body>
<!--按钮x2,此两个按钮都有onclick动作指向相应的函数-->
<input type="button" value="创建节点" onclick="createnode()" />
<input type="button" value="删除最后一个节点" onclick="removenode()" />
<!--一个没有<option>子节点的下拉菜单,由createnode()节点的同时,同时添加。-->
<select id="number"></select>
<!--输入框x1,注意设置好id,replacenode()要取这个文本框的值-->
<input type="text" id="text" />
<!--按钮x1,同上面的按钮x2-->
<input type="button" value="替换节点内容" onclick="replacenode()" />
<!--一个什么都没有的空图层,作为<p>的父节点,添加的<p>皆是此<div>节点的子节点-->
<div id="d">
</div>
</body>

2、<head>节点
复制代码 代码如下:<head>
<!--网页使用的编码、标题,这不重要,关键是下面的js脚本部分-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jsdivnode</title>
<script type="text/javascript">

var i = 0;

function createnode() {

if (i < 9) {

i++;

var option = document.createElement("option");


option.value = i;

option.innerHTML = "Node" + i.toString();

document.getElementById("number").appendChild(option);


var p = document.createElement("p");
p.innerHTML = "Node" + i.toString();
document.getElementById("d").appendChild(p);
} else
alert("爷行行好了,太多节点,臣妾做不到啊~");
}

function removenode() {

if (i > 0) {

i--;

var s = document.getElementById("number");

s.removeChild(s.lastChild);


var d = document.getElementById("d");
d.removeChild(d.lastChild);





} else
alert("没有节点,删个毛线啊~");
}

function replacenode() {

if (i > 0) {

var d = document.getElementById("d");

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

p.innerHTML = document.getElementById("text").value;

var ps = d.getElementsByTagName("p")

d.replaceChild(p, ps[document.getElementById("number").value - 1]);
} else
alert("没有节点,替换个毛线啊~");
}
</script>
</head>

希望本文所述对大家的javascript程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章