HTML DOM

HTML DOM

定义了访问和操作 HTML 文档的标准方法。
DOM:文档对象模型,以树形结构描述HTML。

HTML DOM 节点
节点类型说明
文档节点整个html文档
元素节点html中的每个元素
文本节点每个元素内的文本内容
属性节点html中的每个属性
注释节点html中的注释
HTML DOM 属性

在节点上获取或设置值

属性说明
innerHTML规定节点的文本内容
nodeName规定节点的名称
nodeValue规定节点的值
nodeType返回节点的类型
parentNode表示父节点
firstChild表示第一个子节点
lastChild表示最后一个子节点
documentElement表示文档节点
body表示文档的主体
childNodes表示一个节点列表
HTML DOM 方法

在节点上执行的动作

方法描述
getElementById()返回带有指定 ID 的元素节点。
getElementsByTagName()返回包含带有指定标签名称的所有元素的节点集合
getElementsByClassName()返回包含带有指定类名的所有元素的节点列表
appendChild()把新的子节点添加到指定节点
removeChild()删除子节点
replaceChild()替换子节点
insertBefore()在指定的子节点前面插入新的子节点
createAttribute()创建属性节点
createElement()创建元素节点
createTextNode()创建文本节点
getAttribute()返回指定的属性值
setAttribute()把指定属性设置或修改为指定的值
常用操作

获取节点

利用元素的id获取html元素节点:

// 如果找到该元素,将以对象的形式返回该元素,否则返回null
document.getElementById(id_name);

利用类名获取html元素节点:

// 返回文档中所有指定类名的元素节点列表,作为 NodeList 对象
document.getElementByClassName(class_name);

利用name属性获取html元素节点:

// 返回带有指定名称的元素节点集合,作为Collection对象
document.getElementsByName(name);

利用标签名获取该元素节点集合:

// 返回带有指定标签名的元素节点集合,作为Collection对象
document.getElementsByTagName(tag_name);// 返回指定id下的所有该标签的节点集合
var x = document.getElementById(id_name);
x.getElementsByTagName(tag_name);

向html输出内容:

// 向html输出流写入内容,若在html加载后写入,会覆盖整个html文档
document.write(text);

改变html元素的内容:

// innerHTML
var x = doucument.getElement..   // 用以上的方法获取html的元素
x.innerHTML = text;  // 利用text代替元素的原有内容
或
x.nodeValue = text;  // 利用节点的属性修改元素的内容

改变html元素的属性:

// 元素.属性 = 新属性值
var x = doucument.getElement..   // 用以上的方法获取html的元素
x.属性 = "新属性值";  // 用新属性值代替元素指定属性中的旧值

改变html元素的样式:

// 元素.style.CSS属性 = 新值
var x = doucument.getElement..   // 用以上的方法获取html的元素
x.style.CSS属性 = "新值";  // 用新值代替元素样式中指定CSS属性中的旧值

创建节点

// 创建元素节点
document.createElement(element);
// 创建文本节点
document.createTextNode(text);

添加节点

// 将节点添加到尾部
element.appendChild(other_element);
// 将节点插入到某节点之前
element.insertBefore(待插入节点, 某节点);

移除节点

// 移除子节点
element.removeChild(child_element);

替换节点

// 替换子节点
element.replaceChild(new_element, old_element);
HTML DOM Collection 元素集合对象

类似一个包含 HTML 元素的数组列表

// 集合属性,为集合的大小
collection.length;
// 集合方法,返回指定索引的元素
collection.item(index);
// 集合方法,返回指定id或name的元素
collection.namedItem(id/name);
HTML DOM NodeList 节点列表对象
// 获得节点列表
element.childNodes;
document.querySelectorAll(element);
// 列表大小
nodelist.length;
// 访问列表
nodelist[index];
DOM事件
事件说明
onclick点击html元素时,触发JS事件
onmousedown鼠标按下时,触发事件
onmouseup鼠标释放时,触发事件
onmouseover鼠标移至标签区域时,触发事件
onmouseout鼠标移出标签区域时,触发事件
onload加载/进入html页面时,触发事件
onunload离开html页面时,触发事件
onchange输入域的内容改变时,触发事件

应用示例

// HTML元素
<element onclick="JS_fun()" ....
...
<script>
	// 触发后执行的方法
	function JS_fun(){
		code...
	}
</script>// 直接在标签内写执行方法
<element onclick="JS code"...

事件监听器

// 添加事件监听器,向指定元素添加事件句柄
element.addEventListener(event, function, useCapture);
// 移除事件监听器
element.removeEventListener(event, function);
参数说明
event事件类型,上面表格中的去掉‘on’既是,如‘click’
function触发后调用的函数,不必带括号
useCapture元素触发的顺序,true为先触发内部在触发外部,false为先触发外部,在触发内部,默认为true
<script>
	var x = document.getElement... // 获取元素节点
	x.addEventListener("click", function_1);  // 向元素x添加事件句柄
	x.removeEventListener("click", function_1); // 移除元素x的事件句柄
	// 事件触发后执行的动作
	function function_1(){
		code...
	}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值