DOM编程

 

 

DOM其实是一棵树
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width = device - width,initial - scale = 1.0 ">
    <title>标题</title>
</head>
<body>
    <header>
        <h1>文字1</h1>
    </header>
    <main>
        <h2>文字2</h2>
        <p>文字3 <span>文字4</span> 文字5</p>
    </main>
</body>
</html>

 

 

 

 

JS如何操作这棵树

浏览器往window上加一个document即可

JS用document操作网页

这就是Document Object Model 文档对象模型

DOM确实难用

 

获取元素,也叫标签

有很多API

  1. window.idxxx或者直接idxxx
  2. document.getElementByld('idxxx')
  3. document.getElement ByTagName('div')[0]
  4. document.getElement ByClassName('red')[0]
  5. document.querySelector('#idxxx')
  6. document.querySelector AI (.red')[0]

用哪一个

  • 工作中用querySelector和querySelectorAll
  • 做demo直接用idxxx,
  • 千万别让人发现
  • 要兼容IE的可怜虫才用getElement(s)ByXXX

获取特定元素

获取html元素

  • document.documentElement

获取head元素

  • document.head

获取body元素

  • document.body

获取窗口(窗口不是元素)

  • window

获取所有元素

  • document. all
  • 这个document.all是个奇葩,第6个falsy值

节点Node包括以下几种

MDN有完整描述,x.nodeType 得到一个数字

  • 1表示元素Element,也叫标签Tag
  • 3表示文本Text
  • 8表示注释Comment
  • 9表示文档Document
  • 11表示文档片段DocumentFragment记住1和2即可

 

图示跨线程操作

 

 

 

DOM中自定义属性的变更不会直接更新

 

posted @   时间观测者  阅读(34)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示