javascript基础从小白到高手系列九百九十九:nodeName 与 nodeValue

 Node.ENTITY_REFERENCE_NODE(5)
 Node.ENTITY_NODE(6)
 Node.PROCESSING_INSTRUCTION_NODE(7)  Node.COMMENT_NODE(8)
 Node.DOCUMENT_NODE(9)
 Node.DOCUMENT_TYPE_NODE(10)
 Node.DOCUMENT_FRAGMENT_NODE(11)
 Node.NOTATION_NODE(12) 节点类型可通过与这些常量比较来确定,比如:

if (someNode.nodeType == Node.ELEMENT_NODE){
  alert("Node is an element.");
}

这两个属性前,最好先检测节点类型,如下所示: 7

if (someNode.nodeType == 1){
value = someNode.nodeName; // 会显示元素的标签名

节点层级

这个例子比较了 someNode.nodeType 与 Node.ELEMENT_NODE 常量。如果两者相等,则意味着 someNode 是一个元素节点。

浏览器并不支持所有节点类型。开发者最常用到的是元素节点和文本节点。本章后面会讨论每种节 点受支持的程度及其用法。

1. nodeName 与 nodeValue

nodeName 与 nodeValue 保存着有关节点的信息。这两个属性的值完全取决于节点类型。在使用
}
在这个例子中,先检查了节点是不是元素。如果是,则将其 nodeName 的值赋给一个变量。对元素而言,nodeName 始终等于元素的标签名,而 nodeValue 则始终为 null。

2. 节点关系

文档中的所有节点都与其他节点有关系。这些关系可以形容为家族关系,相当于把文档树比作家谱。 在 HTML 中,元素是元素的子元素,而元素则是元素的父元素。 元素是元素的同胞元素,因为它们有共同的父元素。
每个节点都有一个 childNodes 属性,其中包含一个 NodeList 的实例。NodeList 是一个类数组 对象,用于存储可以按位置存取的有序节点。注意,NodeList 并不是 Array 的实例,但可以使用中括 号访问它的值,而且它也有 length 属性。NodeList 对象独特的地方在于,它其实是一个对 DOM 结 构的查询,因此 DOM 结构的变化会自动地在 NodeList 中反映出来。我们通常说 NodeList 是实时的 活动对象,而不是第一次访问时所获得内容的快照。
下面的例子展示了如何使用中括号或使用 item()方法访问 NodeList 中的元素:

let firstChild = someNode.childNodes[0];
let secondChild = someNode.childNodes.item(1);
let count = someNode.childNodes.length;

无论是使用中括号还是 item()方法都是可以的,但多数开发者倾向于使用中括号,因为它是一个 类数组对象。注意,length 属性表示那一时刻 NodeList 中节点的数量。使用 Array.prototype. slice()可以像前面介绍 arguments 时一样把 NodeList 对象转换为数组。比如:

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值