2024-1-2 DOM概念以及部分用法

DOM概念

DOM(Document Object Model)是一套对文档的内容进行抽象和概念化的方法。

当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

HTML DOM 模型被构造为对象的树

HTML DOM树

如图

DOM标准规定HTML文档中的每个成分都是一个节点(node):

  • 文档节点(document对象):代表整个文档
  • 元素节点(element对象):代表一个元素(标签)
  • 文本节点(text对象):代表元素(标签)中的文本
  • 属性节点(attribute对象):代表一个属性,元素(标签)才有属性
  • 注释是注释节点(comment对象)

JavaScript 可以通过DOM创建动态的 HTML:

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

主要点

1.查找HTML中的标签

直接查找

document.getElementById 根据ID获取一个标签
document.getElementsByClassName 根据class属性获取
document.getElementsByTagName 根据标签名获取标签合集

例子如下

首先是HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div class="a" id="a1">第一个div</div>
<div class="b" id="b1">第二个div
    <span class="c" id="c1">第二个div里面的span</span>
    <div class="d" id="d1">第二个div的div<a href="">第二个div的div内的a</a></div>
</div>
<div class="e" id="e1">第三个div</div>

</body>
</html>

然后在通过上面的方法来查看标签

同时这些查找的结果可以赋值给变量

间接查找

parentElement 父节点标签元素
children 所有子标签
firstElementChild 第一个子标签元素
lastElementChild 最后一个子标签元素
nextElementSibling 下一个兄弟标签元素
previousElementSibling 上一个兄弟标签元素

2.节点操作

1.创建节点

语法:

createElement(标签名)

示例:

var imgEle = document.createElement("img");

这里我创建了imgEle的节点,它就相当于img标签

这个节点可以给它添加属性,首先添加图片

如图

注意点:这里的创建节点不止这种,比如上面将查找结果赋值给其他变量名,那些变量名也是节点的一种

2.添加节点

语法:

1.追加一个子节点(作为最后的子节点)

节点1.appendChild(节点2)

这里就会让节点1内多了一个节点2

例子如图

2.把增加的节点放到某个节点的前边。

节点1.insertBefore(节点2,节点3)

这里会在节点1内添加节点2,同时节点2的添加位置会在节点3前面

例子如图

3.删除节点:

语法:获得要删除的元素,通过父元素调用该方法删除。

节点1.removeChild(节点2)

将节点1中的节点2删去

例子如图

4.替换节点

语法:

节点1.removeChild(节点2,节点3)

将节点1内的节点2替换成节点3

例子如图

3.属性节点

1.获取文本节点的值

例子如下

var divEle = document.getElementById("d1")
divEle.innerText//用于获取或设置元素的文本内容
divEle.innerHTML//用于获取或设置元素的HTML内容

例子结果如图

2.设置文本节点的值

例子如下

var divEle = document.getElementById("d1")
divEle.innerText="1"
divEle.innerHTML="<p>添加的段落标签</p>"

例子结果如图

innerText结果

innerHTML结果

3.获取值操作

节点.value

适用于一下标签:

  • .input
  • .select
  • .textarea

input例子:

var inEle=document.getElementsByTagName("input");
inEle;//产看属性的内容情况
inEle=inEle[0]//将内容部分进行赋值
inEle.value//查看属性的值

例子如下

4.class操作

如下

节点.className 获取所有样式类名(字符串)
节点.classList.remove(cls) 删除指定类
节点.classList.add(cls) 添加类
节点.classList.contains(cls) 存在返回true,否则返回false
节点.classList.toggle(cls) 存在就删除,否则添加

例子如下

5.指定CSS操作

例子:

var b1Ele=document.getElementById("b1");//给id属性为b1的标签生成节点对象
b1Ele.style.backgroundColor="red";//设计b1Ele节点的背景属性
posted @   scxlzb  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示