博客
关于我
13.DOM和节点
阅读量:534 次
发布时间:2019-03-08

本文共 1315 字,大约阅读时间需要 4 分钟。

DOM 概念

DOM 全称是 Document Object Model(文档对象模型),它是 HTML 和 XML 文档的一种表示方法。DOM 将一个 HTML 文档视为一棵树状结构,其中每个节点代表文档中的一个部分,比如元素、属性或文本。

DOM 的核心概念

在 JavaScript 中,对象可以分为三类:

  • 用户定义的对象:通过 new 关键字创建的普通对象
  • 内建对象:如 ArrayDateMath 等内置的 JavaScript 对象
  • 宿主对象:与 JavaScript 引擎相关的对象
  • DOM 的核心思想是通过 DOM 方法获取和操作文档中的元素、属性和文本。例如:

    你想学习什么编程语言?

    本网页由 JS 写成,期待您对其进行学习

    • JavaScript
    • HTML5
    • SpringCloud

    在上述代码中,body 标签下的节点包括 h1pulul 标签下的节点则是 li 标签。

    DOM 节点类型

    在 DOM 中,节点可以分为三种类型:

  • 元素节点 (Element Node):如 HTML 标签 <div><p>
  • 属性节点 (Attribute Node):如 HTML 标签中的 titleclass 等属性值
  • 文本节点 (Text Node):如 HTML 文本内容
  • 以以下示例为例:

    本网页由 JS 写成,期待您对其进行学习

    • <p> 是元素节点
    • title 是属性节点
    • 本网页由 JS 写成,期待您对其进行学习 是文本节点

    如何获取 DOM 节点

    获取 DOM 节点的方式主要有以下三种:

  • document.getElementById():通过 id 属性快速获取元素
    let eleNode = document.getElementById('classList');
  • document.getElementsByTagName():通过标签名获取所有同一标签的元素
    let oList = document.getElementsByTagName('li');
  • document.getElementsByClassName():通过 class 属性值获取元素
    let oItems = document.getElementsByClassName('item');
  • 通过以上方法,可以轻松获取 DOM 中的各种节点,并根据需要进行操作。

    DOM 的实际应用

    在实际开发中,DOM 可用于以下操作:

  • 元素的添加与删除:例如通过 appendChild()removeChild() 方法
  • 属性的设置与修改:通过 setAttribute()removeAttribute() 方法
  • 文本内容的修改:通过 textContentinnerHTML 属性
  • 事件的绑定:通过 addEventListener() 方法
  • 动态生成内容:通过 document.createElement() 方法创建新元素
  • 通过合理运用 DOM 方法,可以实现对 HTML 文档的灵活操作,充分发挥 JavaScript 的优势。

    转载地址:http://vjxnz.baihongyu.com/

    你可能感兴趣的文章
    NMF(非负矩阵分解)
    查看>>
    nmon_x86_64_centos7工具如何使用
    查看>>
    NN&DL4.1 Deep L-layer neural network简介
    查看>>
    NN&DL4.3 Getting your matrix dimensions right
    查看>>
    NN&DL4.8 What does this have to do with the brain?
    查看>>
    nnU-Net 终极指南
    查看>>
    No 'Access-Control-Allow-Origin' header is present on the requested resource.
    查看>>
    NO 157 去掉禅道访问地址中的zentao
    查看>>
    no available service ‘default‘ found, please make sure registry config corre seata
    查看>>
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>