JavaScript DOM编程基础:节点创建与操作详解
本文介绍JavaScript DOM编程的核心概念,包括DOM与BOM的区别、节点类型及API。重点讲解如何使用createElement创建元素节点、createTextNode创建文本节点,并通过appendChild将节点添加到文档中。同时演示cloneNode方法在复制节点时的参数差异,帮助初学者掌握DOM动态操作的基本技巧。
DOM与BOM基础概念
术语学习:
DOM:文档对象模型(Document Object Model)。
BOM:浏览器对象模型。
注:亦可称为窗口对象模型(Window Object Model)。
API:应用编程接口。
注:DOM本质上可视为一种API。
Node:节点。
注:节点类型包括:元素节点、属性节点、文本节点。
元素节点包含属性节点与文本节点。
DOM树结构:
接下来直接演示DOM的具体操作方法。
创建元素节点 createElement
1. 创建元素节点:createElement()方法:
<SCRIPT LANGUAGE="JavaScript">
var a = document.createElement("p");
alert( "节点类型是 : " +a.nodeType + " , 节点名称是: " + a.nodeName);
</SCRIPT>
输出结果:nodeType为1,a.nodeName为p;
这表明创建的是一个元素节点。你可能会疑惑,为何文档中未显示该p节点?
参考以下示例:
<body>
</body>
<SCRIPT LANGUAGE="JavaScript">
var a = document.createElement("p");
document.body.appendChild(a);
</SCRIPT>
使用Firebug查看,可见文档中已包含所需结果。
由此可见,createElement()创建的新元素节点不会自动加入文档,而是处于游离状态。若要将其加入文档,可使用appendChild()、insertBefore()或replaceChild()方法(后者后续介绍)。
创建文本节点 createTextNode
2. 创建文本节点:createTextNode()方法:
var b = document.createTextNode("my demo");
alert( "节点类型是 : " +b.nodeType + " , 节点名称是: " + b.nodeName);
输出结果:nodeType为3,a.nodeName为#text;
这表明创建的是一个文本节点。你可能会疑惑,为何文档中未显示该文本节点?是否也需使用appendChild()添加至文档?
正确,你的理解完全正确。
参考以下示例:
<body>
</body>
<SCRIPT LANGUAGE="JavaScript">
var mes = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(mes);//先将文本节点添加至元素节点
document.body.appendChild(container);//再将元素节点添加至文档
</SCRIPT>
复制节点 cloneNode
3. 复制节点:cloneNode(boolean)方法,含一个参数:
参考以下示例:
<body>
</body>
<SCRIPT LANGUAGE="JavaScript">
var mes = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(mes);
document.body.appendChild(container);
var newpara = container.cloneNode(true);//区分true与false
document.body.appendChild(newpara );
var newpara = container.cloneNode(false);//区分true与false
document.body.appendChild(newpara );
</SCRIPT>
查看Firebug下的结果:
2下一页阅读全文
网页开发三者分工:HTML结构、CSS样式与JavaScript交互怎么协作
2026-11-05 12:51:22
JS解析URL参数时怎么处理中文乱码和特殊字符
2026-11-05 12:47:23
js-cookie 存储 JSON 对象:自动序列化与反序列化技巧
2026-11-05 12:36:26
marked.js 快速上手:安装与基础 Markdown 转 HTML 示例
2026-11-05 09:32:53
Phaser.js 与 PixiJS、Cocos Creator 的技术选型对比
2026-11-05 08:36:30
