DOM中的node(节点)有关的三个属性–nodeType、nodeName、nodeValue

上篇博文我们讲到了如何通过DOM获取HTML文档中的元素,在这里要明白一点,当我们获取到具体的某一个元素的时候这个元素就是一个元素节点。说到节点,我们不可避免的有三个属性很有必要了解一下:nodeType、nodeName、nodeValue。

1.nodeType属性

每个节点都有一个 nodeType 属性,用于表明节点的类型,节点类型由 Node 类型中定义12个常量表示:

常量名 常量(返回)值 节点类型 描述
Node.ELEMENT_NODE 1 Element 代表元素
Node.ATTRIBUTE_NODE 2 Attr 代表属性
Node.TEXT_NODE 3 Text 代表元素或属性中的文本内容
Node.CDATA_SECTION_NODE 4 CDATASection 代表文档中的 CDATA 部(不会由解析器解析的文本)
Node.ENTITY_REFERENCE_NODE 5 EntityReference 代表实体引用
Node.ENTITY_NODE 6 Entity 代表实体
Node.PROCESSING_INSTRUCTION_NODE 7 ProcessingInstruction 代表处理指令
Node.COMMENT_NODE 8 Comment 代表注释
Node.DOCUMENT_NODE 9 Document 代表整个文档(DOM 树的根节点)
Node.DOCUMENT_TYPE_NODE 10 DocumentType 向为文档定义的实体提供接口
Node.DOCUMENT_FRAGMENT_NODE 11 DocumentFragment 代表轻量级的 Document 对象(文档的某个部分)
Node.NOTATION_NODE 12 Notation 代表 DTD 中声明的符号

:以上红色部分为平时最常用的节点类型。

    <div class="wrap" id="wrap"><p id="text" class="text">这是一个段落</p><ul class="list"><li class="item">列表01</li><li>列表02</li><li>列表03</li><li>列表04</li></ul></div>

当然上面表格中是采用常量的方式来返回节点类型,接下来我们说一下怎样通过nodeType属性返回元素的类型:

    var oWrap=document.getElementsByClassName("wrap")[0];// var oWrap=document.getElementById('wrap');var oText=document.getElementById("text");// 通过节点 获取元素   node.get。。。。// var oText=oWrap.getElementsByClassName("text");var oList=document.getElementsByClassName("list");console.log(oWrap);console.log(oText);console.log(oList);// 1.节点分类  nodeType  返回节点类型  1(元素节点)  3(文本节点) 2(属性节点)  8(注释节点)  9(document)console.log(oWrap.nodeType);//1   当获取的是HTML集合时 返回undefinedconsole.log(oText.nodeType);//1console.log(oList.nodeType);//1var textNode=oText.firstChild;console.log(textNode.nodeType);//3  文本节点var attrNode=oText.getAttributeNode("id");console.log(attrNode.nodeType);//2  属性节点console.log(document.nodeType);//9

:使用nodeType属性时一定要确保获取到的是节点而不是节点对应的值。

2.nodeName属性

返回节点的名称。

    // 元素节点返回 大写的标签名console.log(oWrap.nodeName);//DIV  console.log(oText.nodeName);//Pconsole.log(oList[0].nodeName);//UL  // 属性节点 返回 属性名console.log(attrNode.nodeName);//id// 文本节点  返回 #textvar oItem=document.getElementsByClassName("item")[0];var itemText=oItem.firstChild;console.log(textNode.nodeName);//#textconsole.log(itemText.nodeName);//#text

3.nodeValue属性

返回节点的值。

    // 元素节点 返回nullconsole.log(oWrap.nodeValue);//console.log(oText.nodeValue);console.log(oList[0].nodeValue);// 属性节点  返回属性值console.log(attrNode.nodeValue);//text// 文本节点   返回文本内容console.log(textNode.nodeValue);//这是一个段落

**注意:**以上三个属性经常会被初学者忽略掉,但是实际应用中所有的浏览器都支持这些属性,可以用来当作判断条件使用。

视频讲解链接:
https://www.bilibili.com/video/BV17t4y1C745/

DOM中的node(节点)有关的三个属性--nodeType、nodeName、nodeValue相关推荐

  1. html5中的dom中的各种节点的层次关系是怎样的

    html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...

  2. Kubernetes集群中部署Node节点

    Kubernetes集群中的Node节点部署 kubernetes的Node节点包含如下组件: flanneld docker kubelet kube-proxy 环境变量 需要的变量. $ # 替 ...

  3. java中删除node节点_[Java]LeetCode237. 删除链表中的节点 | Delete Node in a Linked List

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  4. DOM节点中属性nodeName、nodeType和nodeValue的区别 Delphi

    http://msdn.microsoft.com/zh-cn/library/vstudio/hf9hbf87.aspx <?xml version="1.0"?>& ...

  5. 前端:JS/25/DOM官方定义,DOM分类,HTML节点树(节点关系,节点类型,),核心DOM中公共的属性和方法(节点访问,查找DOM节点,节点属性,节点的创建,追加和删除)

    DOM官方定义 DOM,Document Object Model,文档对象模型,我们可以把网页中的所有"东西"看成是对象": DOM的官方定义:DOM可以使用脚本,动态 ...

  6. 在Unity中创建基于Node节点的编辑器 (一)

    孙广东   2018.5.13 Unity  AssetStore中关于Node节点 编辑器相关的插件可是数不胜数, 状态机,行为树,Shader 可视化等等. Unity自己也有 Animator的 ...

  7. 文档对象模型DOM(获取元素节点、设置节点属性)

    练习题: 制作一个表格,显示班级的学生信息. 要求: 1. 鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff 2. 点击添加按钮,能动态在最后添加一行 3. 点 ...

  8. DOM中的动态NodeList与静态NodeList

    GitHub版本: https://github.com/cncounter/translation/blob/master/tiemao_2014/NodeList/NodeList.md 副标题: ...

  9. k8s node节点停机维护,pod如何迁移?

    需求 k8s集群中的node节点要升级内存,以应对服务迁入.pod扩缩容导致的资源短缺,需要对node节点进行停机维护,那么此时node节点上的pod应该如何处理呢? 下面我们来看一下. 默认迁移 当 ...

最新文章

  1. Android签名机制之---签名验证过程详解
  2. 美国国家航空航天局宣布发现地球2.0
  3. 【网址收藏】如何设置node.js存储路径:node缓存、数据目录
  4. leetcode-71-简化路径
  5. PXE自动安装FreeBSD
  6. 记事本linux命令换行符,Windows 10版记事本应用终于支持Linux/Mac换行符 排版不再辣眼睛...
  7. 五分钟教你如何用函数计算部署钉钉群发机器人
  8. java轮训算法_负载均衡轮询算法实现疑问
  9. UnrealEngine4和3DMax的配合_准备资源
  10. 如何生成随机的字母数字字符串?
  11. UCOS II怎么查找当前就绪表中,优先级最高的任务
  12. SQL中 and or in的用法
  13. Chrome浏览器长截图
  14. asp.net在前台web页面中使用Javascript调用RTX腾讯通的聊天窗口
  15. 歌声合成:mid与xml 乐谱文件解析(3)
  16. 新手如何学习FPGA技术
  17. 微信小程序UI组件库合集
  18. 国开计算机实操题操作,国开大学计算机实操答案一.
  19. 用xLang写Timer事件
  20. javaCSGO赛事管理系统springbootvueweb

热门文章

  1. mint-ui 中 popup 组件的 closeonclickmodal 无效
  2. IBM X服务器BIOS 使用说明
  3. springboot+vue宠物医院诊所管理系统源码
  4. 第 11 章. Drawing Textures 绘制纹理
  5. GOF23设计模式之适配器模式
  6. 大数据计数原理1+0=1这你都不会算(一)No.47
  7. 2021-11-13周报
  8. 什么是项目生命周期?如何划分项目阶段?有什么意义?
  9. 天猫精灵技能开发从创建到发布
  10. 【蓝桥杯】有理数的循环节