0

0

JS中DOM如何操作

小云云

小云云

发布时间:2018-03-19 17:05:21

|

2854人浏览过

|

来源于php中文网

原创

dom即 document object model 是 w3c (万维网联盟)的标准,dom定义访问 html 和 xml 的标准 : w3c文档对象模型(dom)是中立于平台和语言的接口, 它允许程序 和脚本 动态的访问和更新文档的内容,结构和样式。

w3c dom 标准被分为 3 个不同的部分: 1.核心dom -针对任何结构化文档的标准模型 2.xml dom -针对xml文档的标准模型 3.html dom - 针对html文档的标准模型

其中在html dom 中 ,所有事物都是节点 , dom 是被视为节点数的html.1.整个文档是一个文档节点 2.每个html元素是元素节点 3.html元素内的文本是文本节点 4.每个html属性是属性节点 5.注释是注释节点

html dom将html文档视作树结构 , 这种结构被称之为节点树, 通过html dom,树中的所有节点均可通过 javascript 进行访问 , 所有html节点(元素)均可被修改,也可以创建或删除节点.

一些常用的html dom 方法:1.getelementbyid(id)-获取带有指定id的节点(元素) 2.appendchid(node)-插入新的子节点(元素) 3.removechild(node)-删除子节点(元素)

一些常用的html dom属性: 1.innerhtml-节点(元素)的文本值 2.parentnode-节点(元素)的父节点 3.childnodes-节点(元素)的子节点 4..attributes-节点(元素)的属性节点

dom操作

创建元素

var newp = document.createelement("p");设置类名 newp.classname = "item";设置id

newp.id = "first";设置背景色 newp.style.background = "red";添加 元素box 进body中

先获取要添加的元素

var body = document.getelementsbytagname("body")[0];var box = document.getelementsbyclassname("box")[0];body.appendchild(newp);//body中现有两个内容 , 一个是newp 一个是box//现在的情况是把newp的内容插到box后面

要想把p中的内容插入到box的前面 则如下: body.insertbefore(newp , box);删除元素 body.removechild(box);//删除box标签 box.remove();dom属性

节点 : 标签 文本 注释 声明(doctype)

可以通过如下方法获取元素下单所有节点: console.log(box.childnodes); 获取标签类型的子节点 , 得到的节点是一个标签 console.log(box.cheildren[0]);尺寸 位置 console.log(newp.offsetwidth);//打印宽度 包含边框 console.log(newp.clientwidth);//不含边框也不含滚动条(可视区域) console.log(newp.scrollheight);//也是元素垂直 / 水平滚动了的距离, 或者是元素卷帘卷走的视觉看不到的部分overflow 处理超出部分 visible默认可见overflow:scroll; //出现滚动条位置 相对于定位父级的一个位置 console.log(newp.offsettop); console.log(newp.offsetleft);子元素滚动上去的一段距离, 除了scrolltop外,以上元素都是只读 console.log(newp.scrolltop)

定时器

一次性定时器 , 只能使用一次

写法1: var time = settimeout(function(){ console.log("一次性定时器"); },1000);写法2: function f1(){ console.log("一次性定时器"); } settimeout(f1,1000);清除一次性定时器 cleartimeout(time);循环计时器, 每隔一段时间,就会执行一次函数

写法1: var timer = setinterval(funtion(){ console.log("循环计时器"); })var timer = setinterval(f2 , 1000);清除循环定时器 clearinterval(timer);dom是html文档结构 其实就是为了能js操作html元素而制定的一个规范, dom的根本就是document对象,该对象有很多属性和放法 例如 创建节点 复制节点 移除节点 修改属性等 dom对象的出现是为了方便javascript 操作html标签而已 , dom全面为document object model (文档对象模型), 也是基于html 文档出来的 , 提供给javascript用来动态(比如点击事件)修改文档的状态, 所以操作dom就是在操作html文档对象(每一个标签)

css就是将html文档样式而已,而javascript能把html和css相结合 , 也就是以前所说的dhtml(动态html)

dom就是将xml (或者html)内的节点定义成基本统一的对象数据可以提供程序语言 (如 javascript) 控制的技术规范

可以使用javascript语言来操作dom以改变网页,为了改变网页,你必须告诉javascript操作哪一个节点,这就是操作dom

操作dom可以让你更改网页的交互方式.所有网页的交互都依赖这种dom技术,即使不用javascript,也可以使用其他语言来操作dom

dom是一棵树,数值和树叶都做了编号 , 你告诉一个脚本 一个函数去寻找那一个枝干的哪一个叶子,对这个这个叶子要做什么改变

当你在知乎的搜索栏输入数据时,javascript 捕获到了你的输入 ,对服务器使用异步查询 , 动态显示搜索结果.

当你向下滑动时 , javascript 捕获到了你滑动的距离,根据距离的大小来判断是否改变, dom, 进而让顶部的导航栏跟随浏览器窗口滚动,免得你回头去找.

当你点击修改按钮时, javascript , 捕获到了这个按钮的鼠标点击事件,反馈了一个可编辑的答案给你

javascript 不能够真正改变dom 他仅仅是改变呈现的内容,当你刷新的时候就会发现呈现的内容消失了.

但是你可以把这些改变用请求的方式传递给后端语言接口 , 由后端语言 php python java node 等 来进行后续的操作 , 他们接到你的请求之后就去修改服务器数据,这样改变就生效了刷新后不会消失 了

但是用户的交互 比如弹窗 滑过变色等等根本没必要让服务器也跟着搀和 原因是 交互只是暂时的 用完了还要变成默认的 不需要保存到服务器 只要保证交互的时候有反馈就可以了.

html 表达静态结构 (网页的基本元素 每个元素的基本功能 元素的基本功能可以产生什么意义,这个意义能产生什么样的内容)

css 呈现层次美化 (元素的基本及特殊属性 元素的形状,状态,元素的布局)

javascript 负责动态交互(操作 dom使用 ajax 进行异步刷新 , 与服务器交互) 该链接介绍的还不算错. https://www.zhihu.com/question/34219998/answer/58211568dom是javascript操作网页的接口 , 全称叫 文档对象模型 (document object model) 他的作用是将网页转化为一个javascript对象, 从而用javascript脚本进行各种操作(比如增删元素等)

浏览器会根据dom模型, 将结构文档化 (比如 html 或者 xml等 ) 解析成一系列的节点, 再由这些节点解析成树状结构(dom tree), 所有的节点和最终的树状结构都有规范的对外接口 , 所以dom可以理解成网页的编程接口. dom有标准的国际标准, 我们目前使用的是dom3

严格的来说 dom 不属于 javascript 但是dom操作是javascript最常见的任务 而javascript 最常见的任务 最常见的dom操作语言.

DOM

DOM即 Document Object Model 是 W3C (万维网联盟)的标准

DOM定义访问 HTML 和 XML 的标准 : W3C文档对象模型(DOM)是中立于平台和语言的接口, 它允许程序 和脚本 动态的访问和更新文档的内容,结构和样式

W3C Dom 标准被分为 3 个不同的部分: 1.核心DOM -针对任何结构化文档的标准模型 2.XML DOM -针对XML文档的标准模型 3.HTML DOM - 针对HTML文档的标准模型

其中在HTML DOM 中 ,所有事物都是节点 , DOM 是被视为节点数的HTML.1.整个文档是一个文档节点 2.每个HTML元素是元素节点 3.HTML元素内的文本是文本节点 4.每个HTML属性是属性节点 5.注释是注释节点

HTML DOM将HTML文档视作树结构 , 这种结构被称之为节点树, 通过HTML DOM,树中的所有节点均可通过 JavaScript 进行访问 , 所有HTML节点(元素)均可被修改,也可以创建或删除节点.

一些常用的HTML DOM 方法:1.getElementById(id)-获取带有指定id的节点(元素) 2.appendChid(node)-插入新的子节点(元素) 3.removeChild(node)-删除子节点(元素)

一些常用的HTML DOM属性: 1.innerHTML-节点(元素)的文本值 2.parentNode-节点(元素)的父节点 3.childNodes-节点(元素)的子节点 4..attributes-节点(元素)的属性节点

DOM操作

创建元素

var newp = document.createElement("p");设置类名 newp.className = "item";设置ID

newp.id = "first";设置背景色 newp.style.background = "red";添加 元素box 进body中

先获取要添加的元素

var body = document.getElementsByTagName("body")[0];var box = document.getElementsByClassName("box")[0];body.appendChild(newp);//body中现有两个内容 , 一个是newp 一个是box//现在的情况是把newp的内容插到box后面

要想把p中的内容插入到box的前面 则如下: body.insertBefore(newp , box);删除元素 body.removeChild(box);//删除box标签 box.remove();DOM属性

节点 : 标签 文本 注释 声明(doctype)

可以通过如下方法获取元素下单所有节点: console.log(box.childNodes); 获取标签类型的子节点 , 得到的节点是一个标签 console.log(box.cheildren[0]);尺寸 位置 console.log(newp.offsetWidth);//打印宽度 包含边框 console.log(newp.clientWidth);//不含边框也不含滚动条(可视区域) console.log(newp.scrollHeight);//也是元素垂直 / 水平滚动了的距离, 或者是元素卷帘卷走的视觉看不到的部分overflow 处理超出部分 visible默认可见overflow:scroll; //出现滚动条位置 相对于定位父级的一个位置 console.log(newp.offsetTop); console.log(newp.offsetLeft);子元素滚动上去的一段距离, 除了scrollTop外,以上元素都是只读 console.log(newp.scrollTop)

定时器

一次性定时器 , 只能使用一次

写法1: var time = setTimeout(function(){ console.log("一次性定时器"); },1000);写法2: function f1(){ console.log("一次性定时器"); } setTimeout(f1,1000);清除一次性定时器 clearTimeout(time);循环计时器, 每隔一段时间,就会执行一次函数

写法1: var timer = setInterval(funtion(){ console.log("循环计时器"); })var timer = setInterval(f2 , 1000);清除循环定时器 clearInterval(timer);DOM是HTML文档结构 其实就是为了能JS操作html元素而制定的一个规范, dom的根本就是document对象,该对象有很多属性和放法 例如 创建节点 复制节点 移除节点 修改属性等 DOM对象的出现是为了方便javascript 操作HTML标签而已 , DOM全面为Document Object Model (文档对象模型), 也是基于HTML 文档出来的 , 提供给Javascript用来动态(比如点击事件)修改文档的状态, 所以操作DOM就是在操作HTML文档对象(每一个标签)

CSS就是将HTML文档样式而已,而javascript能把HTML和CSS相结合 , 也就是以前所说的DHTML(动态HTML)

DOM就是将XML (或者HTML)内的节点定义成基本统一的对象数据可以提供程序语言 (如 javascript) 控制的技术规范

可以使用javascript语言来操作DOM以改变网页,为了改变网页,你必须告诉Javascript操作哪一个节点,这就是操作DOM

操作DOM可以让你更改网页的交互方式.所有网页的交互都依赖这种DOM技术,即使不用Javascript,也可以使用其他语言来操作DOM

DOM是一棵树,数值和树叶都做了编号 , 你告诉一个脚本 一个函数去寻找那一个枝干的哪一个叶子,对这个这个叶子要做什么改变

当你在知乎的搜索栏输入数据时,Javascript 捕获到了你的输入 ,对服务器使用异步查询 , 动态显示搜索结果.

当你向下滑动时 , Javascript 捕获到了你滑动的距离,根据距离的大小来判断是否改变, DOM, 进而让顶部的导航栏跟随浏览器窗口滚动,免得你回头去找.

当你点击修改按钮时, javascript , 捕获到了这个按钮的鼠标点击事件,反馈了一个可编辑的答案给你

Javascript 不能够真正改变DOM 他仅仅是改变呈现的内容,当你刷新的时候就会发现呈现的内容消失了.

但是你可以把这些改变用请求的方式传递给后端语言接口 , 由后端语言 PHP Python Java Node 等 来进行后续的操作 , 他们接到你的请求之后就去修改服务器数据,这样改变就生效了刷新后不会消失 了

但是用户的交互 比如弹窗 滑过变色等等根本没必要让服务器也跟着搀和 原因是 交互只是暂时的 用完了还要变成默认的 不需要保存到服务器 只要保证交互的时候有反馈就可以了.

HTML 表达静态结构 (网页的基本元素 每个元素的基本功能 元素的基本功能可以产生什么意义,这个意义能产生什么样的内容)

CSS 呈现层次美化 (元素的基本及特殊属性 元素的形状,状态,元素的布局)

Javascript 负责动态交互(操作 DOM使用 AJAX 进行异步刷新 , 与服务器交互) 该链接介绍的还不算错. https://www.zhihu.com/question/34219998/answer/58211568DOM是Javascript操作网页的接口 , 全称叫 文档对象模型 (Document Object Model) 他的作用是将网页转化为一个javascript对象, 从而用Javascript脚本进行各种操作(比如增删元素等)

浏览器会根据DOM模型, 将结构文档化 (比如 HTML 或者 XML等 ) 解析成一系列的节点, 再由这些节点解析成树状结构(Dom Tree), 所有的节点和最终的树状结构都有规范的对外接口 , 所以DOM可以理解成网页的编程接口. DOM有标准的国际标准, 我们目前使用的是DOM3

严格的来说 DOM 不属于 Javascript 但是DOM操作是Javascript最常见的任务 而Javascript 最常见的任务 最常见的DOM操作语言.

相关推荐:

顶级域名交易系统
顶级域名交易系统

1.后台管理登陆直接在网站地址后输入后台路径,默认为 /admin,进入后台管理登陆页面,输入管理员用户名和密码,默认为 中文 admin ,登陆后台。2.后台管理a.注销管理登陆 (离开后台管理时,请点击这里正常退出,确保系统安全)b.查看使用帮助 (如果你在使用系统时,有不清楚的,可以到这里来查看)c.管理员管理 (这里可以添加,修改,删除系统管理员,暂不支持,分权限管理操作)d.分类管理 (

下载

js中DOM知识点分享

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 4.4万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 2.6万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号