博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
前端学习笔记(3)-DOM 基础
阅读量:7024 次
发布时间:2019-06-28

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

hot3.png

前端学习笔记(3)-DOM 基础

标签 : 前端


[TOC]


本文主要介绍 HTML DOM。第一部分 "DOM 概述" 主要参考 MDN,第二部分 "HTML DOM" 主要参考 W3School。

DOM 概述

文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来。

所有操作和创建web页面的属性,方法和事件都会被组织成对象的形式(例如, document 对象表示文档本身, table 对象实现了特定的 HTMLTableElement DOM 接口来访问HTML 表格等)。

引自

JavaScript 可以访问和操作存储在 DOM 中的内容:

API (web 或 XML 页面) = DOM + JS (脚本语言)

一些重要的数据类型:

document 每个载入浏览器的 HTML 文档都会成为 Document 对象。
element element 是指由 DOM API 中成员返回的类型为 element 的一个元素或节点。
nodeList nodeList 是一个元素的数组
attribute DOM 中的属性也是节点,就像元素一样
namedNodeMap namedNodeMap 和数组类似,但是条目是由 name 或 index 访问的

HTML DOM

下面用一张树状图图来介绍 HTML DOM。

文档对象模型 DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)

HTML DOM 树

HTML 文档可以说由节点构成的集合,常见的 DOM 节点:

  1. 元素节点:上图中<html>、<body>、<p>等都是元素节点,即标签
  2. 文本节点:向用户展示的内容,如 <li>...</li>中的 JavaScript、DOM、CSS 等文本。
  3. 属性节点:元素属性,如 <a> 标签的链接属性 href="http://www.imooc.com"

几个简单的 DOM 操作:

  • innerHTML 属性用于获取或替换 HTML 元素的内容,Object.innerHTML
  • 改变 HTML 样式,Object.style.property=new style;
  • 隐藏和显示 Object.style.display = value,value 可取 none 或者 block

参考


HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法。换言之,HTML DOM 是关于如何获取、修改、添加或删除 HTML 元素的标准。

参考

方法和属性

所有 HTML 元素被定义为对象,而编程接口则是 对象方法对象属性

  • 方法是您能够执行的动作(比如添加或修改元素)。
  • 属性是您能够获取或设置的值(比如节点的名称或内容)

一些常用的 HTML DOM 方法:

  • getElementById(id) - 获取带有指定 id 的节点(元素)
  • appendChild(node) - 插入新的子节点(元素)
  • removeChild(node) - 删除子节点(元素)

一些常用的 HTML DOM 属性:

  • innerHTML - 节点(元素)的文本值
  • parentNode - 节点(元素)的父节点
  • childNodes - 节点(元素)的子节点
  • attributes - 节点(元素)的属性节点
  • nodeName - nodeName 属性规定节点的名称。
    • nodeName 是只读的
    • 元素节点的 nodeName 与标签名相同
    • 属性节点的 nodeName 与属性名相同
    • 文本节点的 nodeName 始终是 #text
    • 文档节点的 nodeName 始终是 #document
  • nodeValue - 性规定节点的值。
    • 元素节点的 nodeValue 是 undefinednull
    • 文本节点的 nodeValue 是文本本身
    • 属性节点的 nodeValue 是属性值
  • nodeType - 返回节点的类型。nodeType 是只读的。

DOM 根节点有两个特殊的属性,可以访问全部文档:

  • document.documentElement - 全部文档
  • document.body - 文档的主体

访问和修改

访问 HTML 元素等同于访问节点,能够以不同的方式来访问 HTML 元素:

  • getElementById() 方法
  • getElementsByTagName() 方法
  • getElementsByClassName() 方法

修改 HTML DOM 意味着许多不同的方面:

  • 改变 HTML 内容
  • 改变 CSS 样式
  • 改变 HTML 属性
  • 创建新的 HTML 元素
  • 删除已有的 HTML 元素
  • 改变事件(处理程序)

事件

HTML 事件的例子:

  • 当用户点击鼠标时,onmousedown、onmouseup 以及 onclick 事件
  • 当网页已加载时,onload 和 onunload 事件
  • 当图片已加载时
  • 当鼠标移动到元素上时,onmouseover 和 onmouseout 事件
  • 当输入字段被改变时,onchange 事件
  • 当 HTML 表单被提交时
  • 当用户触发按键时

参考资料


作者更多文章: | |

转载于:https://my.oschina.net/brianway/blog/904022

你可能感兴趣的文章
AtomicInteger和count++的比较
查看>>
为乐趣而生----禁止网页右键、复制、另存为方法
查看>>
JS删除数组条目中重复的条目
查看>>
jQuery数组处理详解(转)
查看>>
hdu1412
查看>>
后仿真笔记 - ise 联合 modelsim
查看>>
python @property
查看>>
XCOJ 1168 (搜索+期望+高斯消元法)
查看>>
紫书 例题11-9 UVa 1658 (拆点+最小费用流)
查看>>
【天池大数据赛题解析】资金流入流出预测(附Top4答辩ppt)
查看>>
广告点击率预测 [离线部分]
查看>>
CodeForces 659F Polycarp and Hay
查看>>
Servlet客户请求的处理:HTTP请求报头HttpServletRequest接口应用
查看>>
ORACLE同义词使用
查看>>
pat 1014 1017 排队类问题
查看>>
Java常用系统变量收集
查看>>
常见负载均衡的优点和缺点对比(Nginx、HAProxy、LVS)
查看>>
Mac电脑C语言开发的入门帖
查看>>
上班两周
查看>>
洛谷P4242 树上的毒瘤
查看>>