Javascript DOM基础
文档对象模型很重要,对文档结构,样式等等的改变就要靠它了,今天还算比较清闲,继续更新。不过有的程序调试的好纠结,fuck.由于这个编辑器有点问题,代码块展示不出来所以把代码全部显示出来了,请谅解。
DOM——文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展置标语言的标准编程接口。Document Object Model的历史可以追溯至1990年代后期微软与NETscape的“浏览器大战”,双方为了在Javascript与JSscript一决生死,于是大规模的赋予浏览器强大的功能。微软在网页技术上加入了不少专属事物,计有VBScript、ActiveX控件、以及微软自家的DHTML格式等,使不少网页使用非微软平台及浏览器无法正常显示。DOM即是当时蕴酿出来的杰作。这一段往事了解就行了。
DOM分级——根据W3C DOM规范,DOM是HTML与XML的应用编程接口(API),DOM将整个页面映射为一个由层次节点组成的文件。有1级、2级、3级共3个级别。
DOM节点——父元素和子元素的关系。一个父元素只有一层的隶属关系。例如UL和Li,如果li下面还有诸如strong的标签,那么他就不是UL的子节点(元素)。
childNodes()
在火狐和谷歌下弹出7,在IE9弹出3,浏览器之间的不兼容问题。当然你可以使用childern来代替childNodes,就不会出现兼容性的问题了。
上面这段代码,本来是给li添加一个红色背景,但是没有成功,不知哪出问题了。原因在于火狐会把li与li之间的空格,也就是空的文本节点算作是一个节点。
nodeType节点类型,1代表元素节点,2代表attr属性,3代表文本节点;
offsetParent表示某个定位元素的父元素,获取元素在页面上的绝对坐标;
首尾子节点firstChild和firstElementChild分别在IE和火狐下有效果,可以通过一个判断语句来实现兼容或者通过“或”语句复制给一个变量,然后来实现。同样的还有lastChild和lastElementChild
兄弟子节点nextSibling和nextElementSibling。previousSibling和nextElementSiling
DOM方式操纵元素——setAttribute,getAttribute,removeAttribute
用className获取元素
封装函数来多次运用,获取类名通常使用很频繁,下面是封装函数的代码:
创建元素createElement()
下面是一个通过点击“单击创建li”这个按钮来创建li,并且在文本框内输入内容的时候,就会创建相应名称的li,但是程序不能执行,大家帮忙找找哪里写错了。程序应该没问题的,firebug也没有提示错误。下面是具体的代码:
添加元素appendChild()
他是在父元素的子节点的后面添加新元素。
插入元素insertBefore()
他是在父元素的子节点的前面添加新元素,他的名字也很好记,翻译过来就是“插入前面”。具体的例子可以看下面的代码,其中有一个判断语句,如果长度为零,就使用appendChild来添加新的元素,注意,这里不能使用insertBefore,因为如果一个元素也没有,insertBefore不起作用,而是用appendChild从元素后面插入元素,即使元素的个数为零,还是可以在零的基础上添加第一个元素。
删除元素removeChild()
看下面的小实例,当单机链接时,就删除一个li,运用了this获取你即将点击的链接,其次,使用parentNode来获取父元素,当然了,还是要通过removeChild方法来删除相应的元素。(对了,我发现了一个文本编辑器的BUG,文本的颜色有时候改不过来,要转换两次颜色才可以变灰黑色==!)
文档碎片Fragment
文档碎片可以优化性能,亲们,可以使用下面提供的两种不同方法在同一款浏览器下测试,有新兴趣的测试一下哦。我在chrome下测试结果卡死了,不知道什么情况,虽然循环了10万次也不至于卡死吧。文档碎片可以打包创建元素,而一般的方法是一个一个的创建元素,如此循环下去知道循环完毕。


__EOF__

本文链接:https://www.cnblogs.com/paxster/archive/2013/05/10/3072148.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述