JavaScript之DOM
DOM(Document Object Model,文档对象模型)是JavaScript操作HTML文档的重要手段。利用DOM可以获取和访问HTML文档的任何元素,还可以动态地在HTML文档中添加或修改元素、属性及样式等。
快速入门
利用DOM提供的document对象,可以获取和访问HTML文档的任何元素,再根据需要添加、删除或修改其属性、内容或样式等。
如下操作:一个常见编程语言列表,分别实现对列表项的获取,添加,删除等操作。
- 创建、编写HTML文档
DOM
常见编程语言列表
-
JavaScript
-
Python
- JS获取、修改相应DOM元素对象内容
通常利用document对象中的方法来获取HTML中的元素,而想要获取到HTML页面中的元素,无非通过标签的ID属性(唯一的),class属性,name属性,标签名称来获取。
// 通过id属性title 获取对应的DOM元素
var spanTitle = document.getElementById('title');
// 设置此DOM元素的内置文本
spanTitle.innerText = "常见编程语言,一起来学习吧"
- 完成删除操作 (节点操作)
通过在我们获取到对应的DOM元素对象后,可根据需求对其进行相关节点操作,如下:
- 可通过appendChild()函数给其添加节点;
- 可通过
removeChild()函数给其移除节点; - 可通过
parentNode来拿到其父节点; - 可通过previousSibling,nextSibling来拿到其前后兄弟节点;
如以下代码:
function delNode(dom){
// 获取 当前对象(按钮)的父节点
var li = dom.parentNode;
// 获取 当前对象(按钮)的父节点的父节点
var ul = dom.parentNode.parentNode;
// 移除节点操作
ul.removeChild(li);
}
- 完成添加操作 (节点操作)
通过在我们获取到对应的DOM元素对象后,可根据需求对其进行相关节点操作,如下:
- 可通过
appendChild()函数给其添加节点; - 可通过
createElement()函数来创建一个指定元素节点;
如以下代码:
// 从HTML文档中获取DOM元素UL
var ulList = document.getElementById('list');
// 从HTML文档中获取DOM元素Button(添加按钮)
var btnAdd = document.getElementById('add');
// 添加按钮的click事件
btnAdd.onclick = function(){
//
// JavaScript
//
//
// 创建元素 li
var li = document.createElement('li');
// 创建元素 span
var span = document.createElement('span');
// 创建元素 button
var button = document.createElement('button');
// 设置span及button元素的内部文本内容
span.innerText = "编程语言";
button.innerText = "删除";
// 设置button元素的属性 (onclick属性)
button.setAttribute('onclick','delNode(this)');
// li中添加
li.appendChild(span);
li.appendChild(button);
// UL中添加
ulList.appendChild(li);
}
关于节点(node)
网页中所有内容都是节点(标签, 属性, 文本, 注释等),整个HTML文档就是一个节点树结构。
节点至少拥有nodeType(节点类型),nodeName(节点名称) 和 nodeValue(节点值) 这三个基本属性。
元素节点nodeType 为 1 (标签)属性节点nodeType 为 2 (属性)文本节点nodeType 为 3 (包括文字, 空格, 换行等)
实际开发操作过程中,我们操作最多的就是元素节点
上图展示的HTML节点树中,各节点及它们之间的常见关系如下:
根节点:html是整个HTML节点树的根节点,一个HTML文档仅有一个。子节点:子节点为某个元素节点的下级节点,如head和body为html元素的子节点。父节点:父节点为某个节点的上级节点,如head元素为meta元素和title元素的父节点。兄弟节点:兄弟节点为拥有同一个父节点的节点,如h1元素和div元素为兄弟节点。
DOM元素操作
获取元素
通常利用document对象中的方法来获取HTML中的元素,在JS代码中获取HTML文件中的DOM元素,是大部分操作的首要必备操作。具体如下图:
除getElementById()方法是获取某一个元素之外,另外3个方法都是获取满足条件的所有元素。
具体使用如下: