首页 > 编程语言 >【JavaScript31】HTML DOM节点与节点属性

【JavaScript31】HTML DOM节点与节点属性

时间:2023-08-09 23:33:05浏览次数:33  
标签:console log JavaScript31 element HTML 属性 节点 nodeName

前言

  • DOM (Document Object Model) 文档对象模型,通过 HTML DOM,JavaScript 能够访问和改变 HTML 文档的所有元素。
  • 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。HTML DOM 模型被结构化为对象树:

DOM节点

  • 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
  • 整个文档是一个文档节点
    • 每个 HTML 元素是元素节点
    • HTML 元素内的文本是文本节点
    • 每个 HTML 属性是属性节点
    • 注释是注释节点
    • 节点树中的节点彼此拥有层级关系。我们常用父(parent)、子(child)和同胞(sibling)等术语来描述这些关系。父节点拥有子节点。同级的子节点被称为同胞(兄弟或姐妹)。
<html>
  <head>
    <meta charset="utf-8">
    <title>hello</title>
  </head>
  <body>
    <h1>DOM 节点</h1>
    <p>Hello world!</p>
  </body>
</html>
  • 上面这段html
    • 是根节点,它没有父节点
    • <head> 和 <body> 的父节点是<html> 节点
    • 的父节点是,它的子节点是一个文本节点Hello world!

节点属性

  • 在DOM中,每一个节点都是一个对象,DOM节点由三个重要的属性:
    • nodeName: 节点的名称
      • nodeName 属性获取节点的名称
      • 元素节点的 nodeName 与标签名相同
      • 属性节点的 nodeName 与属性名相同
      • 文本节点的 nodeName 始终是 #text
      • 文档节点的 nodeName 始终是 #documen
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>DOM 节点</h1>
    <p id="demo" class="text">Hello world!</p>

    <script>
       element =  document.getElementById('demo')
      // 元素节点的 nodeName 与标签名相同
      console.log(element.nodeName);  // P
      console.log(element.attributes[0]);  // 属性节点 id="demo"
      console.log(element.attributes[0].nodeName);  // id
      console.log(element.childNodes[0]);  // 文本节点 Hello world!
      console.log(element.childNodes[0].nodeName);  // #text
      // 文档节点
      console.log(document.nodeName);  // #document
    </script>

</body>
</html>

  • nodeValue: 节点的值
    • nodeName 属性获取节点的值
      • 元素节点的 nodeValue 是 undefined 或 null
      • 文本节点的 nodeValue 是文本本身
      • 属性节点的 nodeValue 是属性值
      • 文档节点的 nodeName 始终是null
      element =  document.getElementById('demo')
      // 元素节点的 nodeName 与标签名相同
      console.log(element.nodeValue);  // null
      console.log(element.attributes[0]);  // 属性节点 id="demo"
      console.log(element.attributes[0].nodeValue);  // demo
      console.log(element.childNodes[0]);  // 文本节点 Hello world!
      console.log(element.childNodes[0].nodeValue);  // Hello world!
      // 文档节点
      console.log(document.nodeValue);  // null

节点层次关系属性:

  • 根据当前节点按层级查找的一些属性
    • childNodes:获取当前节点的所有子节点
    • firstChild:获取当前节点的第一个子节点
    • lastChild:获取当前节点的最后一个子节点
    • ownerDocument获取该节点的文档的根节点,相当于document
    • parentNode:获取当前节点的父节点
    • previousSibling:获取当前节点的前一个同级节点
    • nextSibling:获取当前节点的下一个节点
    • previousSibling:获取当前节点的上一个节点
    • attributes:获取当前节点的所有属性
    • className:用于获取/设置当前标签的class属性值
    • innerHTML:用于获取/设置起始标签和结束标签中的内容
    • innerText:用于获取/设置起始标签和结束标签中的文本

标签:console,log,JavaScript31,element,HTML,属性,节点,nodeName
From: https://www.cnblogs.com/xwltest/p/17619140.html

相关文章

  • HTML5 技术在风电、光伏等新能源领域的应用
    随着新一轮工业革命兴起,应对气候变化日益成为全球共识,能源技术正在成为引领能源产业变革、实现创新驱动发展的源动力。从全球到中国,以风能、光伏发电为代表的新能源产业发展迅速,可再生能源发电与现代电网的融合成为了世界能源可持续转型的核心,发电技术继续沿着大规模、高效率和低成......
  • 基于 HTML5 OpenLayers3 实现 GIS 电信资源管理系统
    前言通过结合HTML5和OpenLayers可以组合成非常棒的一个电信地图网络拓扑图的应用,形成的效果可以用来作为电信资源管理系统,美食定位分享软件,片区找房,绘制铁轨线路等等,各个领域都能够涉及的一款应用。虽然这个Demo是结合OpenLayers3的,其实还可推广到与ArcGIS、百度地图以及......
  • html&css
    B/S软件的结构javaSE:C/S结构ClientServerB/SBrower(浏览器)Server前端的开发流程前端指的是页面部分的开发网页的组成部分HTML简介创建HTML页面这个是在IDEA中编写html文件,创建普通的项目即可,然后在项目的目录下创建html文件html文件的编写规范注释在运行......
  • django响应html
    fromdjango.templateimportTemplate,Context,loaderdefindex(req): t=loader.get_template("index.html") c=Context({}) #returnHttpResponse(loader.get_template("index.html").render({})) returnHttpResponse(t.render(c))def......
  • vite+vue 在html中通过script引入的文件在使用时,部署后却无法获取文件中的方法
    今天在写项目的时候,遇到了一个奇怪的问题,我再html中使用script全局引入了一个js文件,但是在组件中使用window.xxx的时候却报错了,说没有这个方法,在本地几次测试都是好的。报错前相关版本:"@vitejs/plugin-vue-jsx":"^2.0.0","@vitejs/plugin-vue":"^2.2......
  • vue+el-tree 通过下拉框选中节点,定位到当前节点,并高亮
    此处为下拉选择器:<el-selectref="searchSelect"v-model="filter"filterableremotesize="mini"clearableplaceholder="请输入关键词":remo......
  • HTML编辑器可以如何直接复制word的图文内容到编辑器中?
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • Html
    HTML快捷键介绍htmlheadbodytitlemeta标题标签标题h位置(第一次接触属性)标签之换行、段落、水平线段落直接写在外面也是可以的,但学了标签还是要走正规军路线换行水平线图片超文本链接a中可以是任何内容文本标签文本标签区别于上面的段......
  • Template String Converter 无法作用在 vue、html 解决方案
    在vscode插件安装地址中找到该插件,默认位置:C:\Users\你的用户名\.vscode\extensions\meganrogge.template-string-converter-0.6.1该目录下有一个package.json文件,打开该文件,编辑里面的 activationEvents项,添加你想要作用的语言,例:"activationEvents":["onLanguage:......
  • 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n
    2023-08-08:给你一棵n个节点的树(连通无向无环的图)节点编号从0到n-1且恰好有n-1条边给你一个长度为n下标从0开始的整数数组vals分别表示每个节点的值同时给你一个二维整数数组edges其中edges[i]=[ai,bi]表示节点ai和bi之间有一条无向边一条好路......