【EASYDOM系列教程】之判断节点类型

Node 对象中提供了 nodeName、nodeType 和 nodeValue 分别可以用于获取指定节点的节点名称、节点类型和节点的值。

DOM 节点树结构中,我们实际开发最常见的节点有:

节点名称含义
元素节点表示 HTML 页面中的标签(即 HTML 页面的结构)
属性节点表示 HTML 页面中的开始标签包含的属性
文本节点表示 HTML 页面中的标签所包含的文本内容

nodeName 属性

Node 对象的 nodeName 属性用于获取指定节点的节点名称。具体的语法结构如下:

var str = node.nodeName;

在上述语法结构中,str 是一个存储了当前节点的节点名称的字符串。

值得注意的是: nodeName 是一个只读属性。

针对不同的节点类型,nodeName 返回的节点名称是不同的:

节点类型nodeName 属性的值
Document 文档节点"#document"
Element 元素节点元素节点的元素名
Attr 属性节点属性节点的属性名
Text 文本节点"#text"

如下代码示例,测试元素节点、属性节点和文本节点的 nodeName 的值:

// 获取元素节点
var elemNode = document.getElementById('btn');
// 获取属性节点
var attrNode = elemNode.getAttributeNode('title');
// 获取文本节点
var textNode = elemNode.firstChild;

console.log('元素节点的nodeName: ' + elemNode.nodeName);
console.log('属性节点的nodeName: ' + attrNode.nodeName);
console.log('文本节点的nodeName: ' + textNode.nodeName);

nodeType 属性

Node 对象的 nodeType 属性用于获取指定节点的节点类型。具体的语法结构如下:

var type = node.nodeType;

在上述语法结构中,type 是一个整数,其代表的是节点类型。

针对不同的节点类型,nodeType 返回的节点类型是不同的:

节点类型nodeType 属性的值
Document 文档节点9
Element 元素节点1
Attr 属性节点2
Text 文本节点3

如下代码示例,测试元素节点、属性节点和文本节点的 nodeType 的值:

// 获取元素节点
var elemNode = document.getElementById('btn');
// 获取属性节点
var attrNode = elemNode.getAttributeNode('title');
// 获取文本节点
var textNode = elemNode.firstChild;

console.log('元素节点的nodeType: ' + elemNode.nodeType);
console.log('属性节点的nodeType: ' + attrNode.nodeType);
console.log('文本节点的nodeType: ' + textNode.nodeType);

nodeValue 属性

Node 对象的 nodeValue 属性用于获取指定节点的节点值。具体的语法结构如下:

var value = node.nodeValue;

在上述语法结构中,value 是一个包含当前节点的值的字符串。

针对不同的节点类型,nodeValue 返回的节点类型是不同的:

节点类型nodeValue 属性的值
Document 文档节点null
Element 元素节点null
Attr 属性节点属性节点的属性值
Text 文本节点文本节点的内容

如下代码示例,测试元素节点、属性节点和文本节点的 nodeValue 的值:

// 获取元素节点
var elemNode = document.getElementById('btn');
// 获取属性节点
var attrNode = elemNode.getAttributeNode('title');
// 获取文本节点
var textNode = elemNode.firstChild;

console.log('元素节点的nodeValue: ' + elemNode.nodeValue);
console.log('属性节点的nodeValue: ' + attrNode.nodeValue);
console.log('文本节点的nodeValue: ' + textNode.nodeValue);

本教程免费开源,任何人都可以免费学习、分享,甚至可以进行修改。但需要注明作者及来源,并且不能用于商业。

本教程采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。

图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值