在 JavaScript 中,使用 HTML DOM 创建、插入、修改(替换)和删除节点需要分别调用 document 对象和元素对象的相应方法来实现,调用情况分别如下:
下面通过示例 1 演示使用 HTML DOM 对节点分别进行创建、添加、插入、修改和删除操作。其中节点类型包括元素节点和文本节点。
【例 1】使用 HTML DOM 操作节点综合示例。
1.HTML代码
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>使用HTML DOM操作节点</title>
<script type="text/javascript" src="js/nod.js"></script>
</head>
<body>
<div id="box">
<p>段落一</p>
<p>段落二</p>
</div>
<a href="javascript:addNode()">添加节点</a>
<a href="javascript:insertNode()">插入节点</a>
<a href="javascript:updateNode()">修改节点</a>
<a href="javascript:deleteNode()">删除节点</a>
</body>
</html>
2.JavaScript代码(nod.js)
window.onload = function(){
var box = document.getElementById("box"); //通过id属性值获得DIV
};
function addNode(){//附加节点
var p = document.createElement("p"); //创建需要添加的元素节点
p.innerHTML = "段落三(添加的内容)";
box.appendChild(p); //将段落节点添加到box的子节点列表后面
}
function insertNode(){//插入节点
var h2 = document.createElement("h2"); // 创建一个H2元素节点
h2.innerHTML = "二级标题(插入的内容)";
var oP = document.getElementsByTagName("p")[0]; //获取第一个段落
box.insertBefore(h2,oP); //在第一个段落前面插入一个H2标题
}
function updateNode(){//修改节点
var oP = document.getElementsByTagName("p")[1];//获取第二个段落
var oldtxt = oP.firstChild;//获取第二个段落的文本节点
//创建需要替换旧文本节点的新文本节点
var newtxt = document.createTextNode("新段落二(修改的内容)");
oP.replaceChild(newtxt,oldtxt); //使用newtxt节点替换oldtxt节点
}
function deleteNode(){//删除节点
var oP = document.getElementsByTagName("p")[0];//获取第一个段落
box.removeChild(oP);//删除第一个段落
}
上述脚本代码实现的功能有:单击“添加节点”链接时会在DIV的子节点列表后面添加段落三;单击“插入节点”链接时会在段落一前面插入一个二级标题;单击“修改节点”链接时会修改段落二的文本内容;单击“删除节点”链接时会把段落一删掉。在Chrome浏览器中的运行结果分别如图 1 ~图 3 所示。