浅谈DOM基础

DOM:文档对象模型(Document Object Model),实际上是以面向对象方式描述的文档模型。

概念:

表示和处理一个HTML或者XML文档的常用方法。DOM的设计是以对象 管理者组织的规约为基础的,因此可以用于任何编程语言。

D:文档可以理解为整个Web加载的网页文档;

O:对象调用属性和方法(document对象);

M:模型可以理解为网页文档的树形结构。

DOM节点:DOM不仅可以查找节点,也可以创建节点、复制、插入删除和替换节点。加载HTML页面时,Web浏览器生成一个树形结构,用来表示页面内部结构。

  • 整个文档是一个文档节点
  • 每个 HTML 元素是元素节点
  • HTML 元素内的文本是文本节点
  • 每个 HTML 属性是属性节点
  • 注释是注释节点

常用元素节点方法:

1、getElementById():接受一个参数,获取特定ID元节点

例子:

if(document.getElementById){              //判断是否支持getElementById
    alert("当前浏览器支持getElementId");
}

2、getElementsTagName()获取相同元素节点列表

例子:

document.getElementByTagName('li' )    //获取所有li元素,返回数组

它们在传递参数的时候,并不是所有浏览器都必须区分大小写,为了防止不必要的错误和麻烦,我们要养成区分大小写的习惯。

3、getElementsByName():获取相同名称的节点列表

例子:

document.getElementByName('add') //获取input元素。

DOM定义了访问HTML和XML文档标准,W3C DOM标准被分为3个不同的部分,核心DOM,针对任何结构文档的标准模型。此外还有HTML DOM,和XML DOM。

HTML DOM:定义了所有HTML元素的对象和属性,以及访问它们的方法。

HTML DOM实例:比如考试系统,当学生们答完一道题,从获得焦点到失去焦点得到一次提交答题记录的功能,当我们有未完成的题,可以获得焦点,直接定位到没有答的题的位置。

以下就是使用HTML DOM编写的获得和失去焦点的Demo。

JavaScript代码:

function getfocus()
{document.getElementById('baidu').focus()}

function losefocus()
{document.getElementById('baidu').blur()}

html代码:

<!doctype html>
<html>
  <title>获得/失去焦点</title>
<script type="text/javascript" src='jiaodian.js'></script>
 </head>
 <body>
<a id="baidu" href="http://baidu.com">欢迎访问百度首页</a>
<br /><br/>
<input type="button" onclick="getfocus()" value="获得焦点">
<input type="button" onclick="losefocus()" value="失去焦点">
 </body>
</html>

总结:DOM易用性比较强,遍历简单,但是效率低,解析速度慢,内存占用量高,对于大量对象的创建和销毁及其影响效率。

PS:简单做个总结,理解的还不是很好,真正的理解应该是会用吧。真正会用了才算是学会了。多多交流哈。O(∩_∩)O~

时间: 2024-12-08 09:34:29

浅谈DOM基础的相关文章

浅谈vr基础视频教程 改变技术革命

对于VR技术的发展应用,是有目共睹的,一个新的技术领域的诞生,现在千锋给大家浅谈vr基础视频教程,改变技术革命. 认知革命发生在几万年前的上古时期,是一个很哲学的话题,聊起来很不接地气.这里讲的认知革命是人们对信息认知方式的革新,比如几千年前人类发明文字时,开启了除语言外的另一种交流工具,这就是认知革命;再如上个世纪互联网的诞生,这是一种通过虚拟介质进行信息交流的方式,也是认知革命. 人们把信息放在网络上,相比写在纸上,是一个跨越式的进步,因为并不是所有的信息.资料都能展现在像纸这样的实体材质上

Js之浅谈dom操作

JavaScript之浅谈dom操作 1.理解dom: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript,为了能够使JavaScript操作Html,JavaScript就有了一套自己的dom编程接口. 对于Html,dom使得html形成一棵dom树,类似于一颗家族树一样,一层接一层,子子孙孙. 所以说,有了DOM,在我看来就是相当于JavaScript拿到了钥

【浅谈DOM事件的优化】

浅谈DOM事件的优化 在 JavaScript程序的开发中,经常会用到一些频繁触发的 DOM 事件,如 mousemove.resize,还有不是那么常用的鼠标滚轮事件:mousewheel (在 Firefox 中,滚轮事件为 DOMMouseScroll). 浏览器为了确保这些事件能够及时响应,触发的频率会比较高,具体的触发频率各浏览器虽然有出入,但出入不大.很多时候在需要注重性能的场景下使用这些事件会想各种办法对事件的触发频率进行优化,下面说说我的一些优化方法. mousemove 在拖拽

【大话设计模式】——浅谈设计模式基础

初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化. 以下浅谈一下对设计模式基础的理解,假设理解的不好.还请大家指正. 首先设计模式是对面向对象的更专业的诠释.面向对象的三大基本特征是继承.封装.多态. 继承: 1.子类继承父类非private的属性和功能. 个人理解:有几个老婆是私有属性,小明他爸有好几个老婆.小明呢.恰好赶上了国家颁布法律一夫一妻 制(怎

浅谈Mysql基础

1.DBMS(DataBase Management System,数据管理系统) :oracle.mysql.sql server.DB2 Mysql:开源.关系型.ISAM存储引擎核心算法前身 Oracle:关系型数据库管理系统,技术领先.大型企业 DB2:支持多媒体.WEB关系型数据库 SQLserver:微软产品 PostgreSQL:唯一支持事务.子查询.多版本并行控制系统.数据完整性检查等特性自由软件 2.数据库软件应该为数据库管理系统,数据库是通过数据库管库系统创建和操作的容器 数

浅谈DOM数遍历

最近一直在研究DOM遍历以及范围的定义: 其实,JS中DOM模块定义了两个用于辅助完成顺序遍历DOM结构的类型:NodeIterator和TreeWalker.这两个类型能够基于给定的起点对DOM结构执行深度优先的遍历操作: 然,此上出自与“DOM2 级遍历和范围”的内容;不过你们懂得,IE不支持DOM遍历.所以,使用下列代码可以检测浏览器对DOM2级遍历能力的支持情况: var  sTraversals = document.implementation.hasFeature("Travers

学习之路(一)浅谈:基础命令及linux工作原理

看了视频,它系统的讲解了linux从硬件到操作系统的工作过程,以及常用的基础命令的详细参数及用法. 我也在这里整理之后加强记忆一次基本概念,及linux文件树目录的基本知识结构. 硬件-->操作系统OS-->library-->shell(GUI或者CLI) ☆/boot:系统启动相关文件.如内核(mlinuz和initramfs),inittrd以及grub(bootloader) /dev:设备文件:块设备/字符设备/设备号 ☆/etc:配置文件 /home:用户家目录 ☆/root

浅谈计算机基础

计算机发展史.... 计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能.是能够按照程序运行,自动.高速处理海量数据的现代化智能电子设备. 在古时候,人们最早使用的计算工具可能是手指,英文单词"digit"既有"数字"的意思,又有"手指"的意思.古人用石头打猎,所以还有可能是石头来辅助计算. 但是手指和石头太低效了.后来出现了"结绳 "记事.但结绳

浅谈自然语言处理基础(下)

命名实体识别 命名实体的提出源自信息抽取问题,即从报章等非结构化文本中抽取关于公司活动和国防相关活动的结构化信息,而人名.地名.组织机构名.时间和数字表达式结构化信息的关键内容,所以需要从文本中去识别这些实体指称及其类别,即命名实体识别和分类. 21世纪以后,基于大规模语料库的统计方法成为自然语言处理的主流,以下是基于统计模型的命名实体识别方法归纳: 基于CRF的命名实体识别方法 基于CRF的命名实体识别方法简便易行,而且可以获得较好的性能,广泛地应用于人名.地名和组织机构等各种类型命名实体的识