一 DOM

JavaScript操作网页的接口,全称为“文档对象模型”(Document Object Model)。

有这几个概念:文档、元素、节点

整个文档是一个文档节点

每个标签是一个元素节点

包含在元素中的文本是文本节点

每一个属性是一个属性节点

注释属于注释节点

二 DOM树:

DOM树是结构

所谓层级结构是指元素和元素之间的关系

父子,兄弟

解析器输出的树是由DOM元素和属性节点组成的

当我们说树中包含DOM节点时,意思就是这个树是由实现了DOM接口的元素组成。这些实现包含了其它一些浏览器内部所需的属性。

脱离文档流后层级结构关系还是没有变的

DOM 是 Document Object Model(文档对象模型)的缩写。提供给Javascript用来动态修改文档状态…

5个常用的DOM方法:

getElemenById、getElementsByTagName、getElementsByClassName、getAttribute和setAttribute

  1. 文档:DOM中的"D"

    如果没有document(文档),DOM也就无从谈起。当创建了一个网页并把它加载到Web浏览器中时,DOM就在幕后悄然而生了。它把你编写的网页文档转换成为一个文档对象。

2.对象:DOM中的"O"

对象(object)是一种非常重要的数据类型。对象是自包含的数据集合,包含在对象里的数据可以通过两种形式访问——属性和方法。

2.1 属性是隶属于某个特定对象的变量;

2.2 方法是只有某个特定对象才能调用的函数

对象就是由一些属性和方法组合在一起而构成的一个数据实体。在javaScript中,属性(property)和方法(method)都使用“点”语法来访问:

2.3 object.propertyobject.method()

JavaScript语言里面的对象可以分为三种类型。

  1. 用户定义对象:由程序员自行创建的对象。

  2. 內建对象:內建在JavaScript语言里的对象,如Array、Math和Date等。

  3. 宿主对象:由浏览器提供的对象。

即使是在JavaScript的最初版本里,对编写脚本来说非常重要的一些宿主对象就已经可用了,他们当中最基础的对象是window(浏览器窗口)对象。

4.模型:DOM中的"M"

DOM中的“M”代表着“Model”(模型),它的含义是某种事物的表现形式,DOM代表着加载到浏览器窗口的当前网页。浏览器提供了网页的模型,而我们可以通过JavaScript去读取这张地图。

利用JS操作 DOM 可以让你更改网页的交互方式。所有网页的交互都依赖这种 DOM 技术。DOM 是一颗树,树枝和树叶都做了编号,通过脚本的函数去寻找哪一个枝干的哪一个叶子,对这个叶子做什么改变。例如

5.image

形如一颗倒长的树。一颗家谱树,而家谱树本身就是一种模型,其典型用法是表示表示人类家族谱系。

它很容易表明家族成员之间的关系,把复杂的关系简明地表示出来,因此这种模型非常适合表示一份html的文档:
![](https://img2020.cnblogs.com/blog/1823155/202106/1823155-20210615151140448-355795390.png) image
清除浮动弊端的方法
* 1.父元素也浮动 margin:0 auto 失效 * 2.父级 dispaly:inline-block 同上 * 3.父级加高 * 4.br标签
`<br clear = "all">`
* 5.在浮动的元素后面加 div设置样式
`
.class{
clear:both/left/right/none;
}`
* 6.伪类清除浮动 `.clearfix:after {content:"."; display:block; height:0; visibility:hidden; clear:both; }`
* 7.父级加 overflow:hidden;
一般常用第6种方法,其他方法都有局限性或者违反了结构样式分离的标准。
但是第6种只能解决高度塌陷,无法解决同级浮动元素遮盖的效果。
可以用第7种来解决,overflow:hidden;

JavaScript之DOM、DOM树的更多相关文章

  1. JavaScript 节点操作Dom属性和方法(转)

    JavaScript 节点操作Dom属性和方法   一些常用的dom属性和方法,列出来作为手册用. 属性:   1.Attributes 存储节点的属性列表(只读)   2.childNodes 存储 ...

  2. javascript进阶——分离式DOM脚本编程

    编写分离式(unobstrusive)代码意味着对HTML内容的完全分离:数据来自服务器端,javascript代码用来动态化和交互.这种分离的好处是在不同浏览器之间使用是可以完全降级或升级运行,对于 ...

  3. javascript系列之DOM(一)

    原文:javascript系列之DOM(一) DOM(document object moudle),文档对象模型.它是一个中立于语言的应用程序接口(API),允许程序访问并修改文档的结构,内容和样式 ...

  4. JavaScript基础:DOM操作详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...

  5. JavaScript和HTML DOM的区别与联系

    JavaScript和HTML DOM的区别与联系 区别: javascript JavaScript 是因特网上最流行的浏览器脚本语言.很容易使用!你一定会喜欢它的! JavaScript 被数百万 ...

  6. 笔记-JavaScript与HTML DOM

    引用源:https://www.cnblogs.com/propheterLiu/p/5966791.html 笔记-JavaScript和HTML DOM 区别: javascript JavaSc ...

  7. JavaScript进阶内容——DOM详解

    JavaScript进阶内容--DOM详解 当我们已经熟练掌握JavaScript的语法之后,我们就该进入更深层次的学习了 首先我们思考一下:JavaScript是用来做什么的? JavaScript ...

  8. 借助JavaScript中的Dom属性改变Html中Table边框的颜色

    借助JavaScript中的Dom属性改变Html中Table边框的颜色 -------------------- <html> <head> <title>我是页 ...

  9. JavaScript获取HTML DOM节点元素详解(转)

    在Web运用程序特别是Web 2.0程序开发中,经常要获取页面中某个元素,然后更新该元素的样式.内容等.如何获取要更新的元素,是首先要处理的疑问. 51CTO推荐阅读:JavaScript DOM文档 ...

  10. JavaScript处理HTML DOM

    本来只想好好写一篇博文,最后弄到好像重构一样了,越做越不满意,先这样吧:) HTML DOM - JavaScript处理HTML DOM 获取HTML元素 改变HTML元素 增删HTML元素 添加事 ...

随机推荐

  1. Redis不是只有get set那么简单

    我以前还没接触Redis的时候,听到大数据组的小伙伴在讨论Redis,觉得这东西好高端,要是哪天我们组也可以使用下Redis就好了,好长一段时间后,我们项目中终于引入了Redis这个技术,我用了几下, ...

  2. csp-s模拟测试52-53

    留坑.... 改完题再说吧. 留坑....最近考得什么鬼??模拟53T1 u(差分) 一道差分题????然而考场没有想到如何维护斜率上的差分,事后经miemeng和cyf的生(xuan)动(xue)讲 ...

  3. Java的一些细节语法(不定时更新。。。)

    可信考试Java相关题目 目录 可信考试Java相关题目 ConcurrentHashMap不允许key为null,但是HashMap是可以的.TreeMap key不支持null. 以下代码里面,请 ...

  4. 我是如何用 ThreadLocal 虐面试官的?

    我是陈皮,一个在互联网 Coding 的 ITer,微信搜索「陈皮的JavaLib」第一时间阅读最新文章,回复[资料],即可获得我精心整理的技术资料,电子书籍,一线大厂面试资料和优秀简历模板. Thr ...

  5. 使用Let’s Encrypt实现网站https化

    使用 Let's Encrypt 证书和搭配 Nginx 实现网站 https 化. 一.SSL证书获取 由于 Let's Encrypy 申请的 SSL 证书只有三个月的有效期,为了实现自动续期,使 ...

  6. kubeadm部署高可用版Kubernetes1.21[更新]

    环境规划 主机名 IP地址 说明 k8s-master01 ~ 03 192.168.3.81 ~ 83 master节点 * 3 k8s-master-lb 192.168.3.200 keepal ...

  7. Unity 不能添加脚本组件,脚本类可能丢失

    报错: 把脚本拖到游戏对象,显示如下 原因: 你可能修改了脚本名称,但此时Unity没有找到那个对应脚本名称的类

  8. Redis的flushall/flushdb误操作

    Redis的flushall/flushdb命令可以做数据清除,对于Redis的开发和运维人员有一定帮助,然而一旦误操作,它的破坏性也是很明显的.怎么才能快速恢复数据,让损失达到最小呢? 假设进行fl ...

  9. 解决git同步每次都需要输入用户名、密码

    打开 git bash 执行命令: git config --global credential.helper store

  10. 组建Redis集群遇到`GLIBC_2.14' not found和ps -ef 不显示用户名

    RHEL6.9组建Redis sentinel集群遇到两个问题 今天在组件Redis sentinel 集群时,遇到两个问题,之前已经组建多次,都没碰到类似问题,在解决这两个问题时,耗费些时间. 问题 ...