这篇文章主要介绍了关于对js中宿主对象的解析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
宿主对象即浏览器提供的对象,主要包括DOM对象和BOM对象。
一、DOM源起
1.SGML、XML和XHTML
SGML(标准通用标记语言)是定义使用标签来表示数据的标记语言的语法。
- 标签由一个小于号和一个大于号之间的文本组成,如
- 标签分为起始标签和结束标签,分别表示一个特定区域的开始和这个特定区域的结束,如标题
- 特性是定义在起始标签内的值。如
,src就是其特性
HTML遵循SGML标记语言的语法,它是的SGML一种应用。或者说,SGML用来定义HTML的文档类型定义(DTD)。SGML还用来编写XML的DTD。XML对SGML的语法做了更细致和严谨的扩展。
- SGML的奇怪语法:
- 某些标签不语序出现结束标签,如HTML中的标签,否则会出现错误。
- 某些标签的结束标签可以不写,如HTML中的标签。
- 标签可以以任何顺序嵌套,如。
- 某些特性必须包含值,如。
- 某些特性不要求一定有值,如。
- 定义特性的两边有没有加双引号都是可以的,如也是允许的。
- XML去掉了许多SGML中的随意语法,并且规定了新的语法:
- 任何的起始标签都必须有一个结束标签。
- 可以采用另一种简化语法,即一个标签同时表示起始标签和结束标签,即,如
,
。
- 标签必须按合适的顺序嵌套。就近原则书写结束标签。
- 所有的特性都必须有值。
- 所有的特性都必须在值得周围加上双引号。
XML衍生出了MathML、SVG、RDF、RSS等等。同时,HTML被改进为XHML,即遵循XML语法的HTML。XHMTL被称为严格模式。2.XML的API
XML定义了HTML的数据排版和解析方式。根据XML语言规范,需要制定API来实现对这些数据的操作和访问。
DOM模型就是最为流行的针对XML的基于树的API。它将XML解析为一颗有节点的树模型,并使用一系列互相关联的对象来表示XML的代码。从而能够指导开发增删改查等具体API的实现。
* DOM是语言无关的API,它并不与其它语言绑定。但对于JavaScript而言,DOM被习惯理解成API集合。HTML DOM (文档对象模型)
- 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
- HTML DOM 模型被构造为对象的树。通过 HTML DOM,可访问 HTML 文档的所有元素。
-
...
...
...
...
- 通过可编程的文档对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。
- JavaScript 能够改变页面中的所有 HTML 元素
- JavaScript 能够改变页面中的所有 HTML 属性
- JavaScript 能够改变页面中的所有 CSS 样式
- JavaScript 能够对页面中的所有事件做出反应- 即Javascript可以操作四个内容:,html元素、html属性、css样式、事件。
- HTML DOM 是浏览器对象BOM的一个属性3.DOM节点层次
DOM定义了树节点(node)的层次和其Node接口:
- Document 最顶层的节点,所有的其它节点都是附属于它的。
- DocumentType DTD引用(使用),如。它不能包含子节点。
- DocumentFragment 可以像Document一样来保存其它节点。
- Element 表示起始标签和结束标签之间的内容。这是唯一可以同时包含特性和子节点的节点类型。
- Attr 代表一对特姓名和特性值。这个节点类型不能包含子节点。
- Text 代表XML文档中的在其实标签和结束标签之间的,或者CData Seciron内的普通文本。这个节点类型不能包含子节点。
- CDataSection 的对象表现形式。这个几点类型仅能包含文本节点Text作为子节点。
- Entity 表示在DTD中的一个实体定义,例如。这个节点类型不能包含子节点。
- EntityReference 代表一个实体引用,例如"。这个节点类型不能包含子节点。
- ProcessingInstruction 代表一个PI。这个节点类型不能包含子节点。
- Comment 代表XML注释。这个节点类型不能包含子节点。
- Notation 代表在DTD中定义的记号。这个很少用到。4.节点类型常量
Node接口还定义了不同节点类型的12个常量:
- Document - Node.DOCUMENT_NODE
- DocumentType - Node.DOCUMENT_TYOE_NODE
- DoucmentR=Frament - Node.DOCUMENT_FRAMENT_NODE
- Element - Node.ELEMENT_NODE
- Attr - Node.ATTRIBUTE_NODE
- Text - Node.TEXT_NODE
- CDataSection - Node.CDATA_SECTION_NODE
- Entity - Node.ENTITY_NODE
- EntityReference - Node.ENTITY_REFERENCE_NODE
- ProcessingInstruction - Node.PROCESSING_INSTRUCTION_NODE
- Comment - Node.COMMENT_NODE
- Notation - Node.NOTATION_NODE
* 这些常量会在选择节点之后以属性的方式查询4.节点类型常量
Node接口还定义了不同节点类型的12个常量:
- Document - Node.DOCUMENT_NODE(9)
- DocumentType - Node.DOCUMENT_TYOE_NODE(10)
- DoucmentR=Frament - Node.DOCUMENT_FRAMENT_NODE(11)
- Element - Node.ELEMENT_NODE(1)
- Attr - Node.ATTRIBUTE_NODE(2)
- Text - Node.TEXT_NODE(3)
- CDataSection - Node.CDATA_SECTION_NODE(4)
- Entity - Node.ENTITY_NODE(5)
- EntityReference - Node.ENTITY_REFERENCE_NODE(6)
- ProcessingInstruction - Node.PROCESSING_INSTRUCTION_NODE(7)
- Comment - Node.COMMENT_NODE(8)
- Notation - Node.NOTATION_NODE(12)
* 这些常量会在选择节点之后以属性的方式查询5.节点特性和方法
Node接口定义了所有节点类型都包含的特性和方法:
特性/方法 类型/返回类型 说明 nodeName String 节点的名字 nodeValue String 节点的值 nodeType Number 节点的类型常量值 ownerDocument Document 节点的所属文档 childNodes NodeList 节点的所有子节点列表 firstChild Node 子节点列表的第一个节点 lastChild Node 子节点列表的最后一个节点 hasChildNodes() Boolean 是否包含子节点 appendChild(node) Node 将node添加到childNodes末尾 removeChild(node) Node 从childNodes中删除node replaceChild(newnode,oldnode) Node 将childNodes中的oldnode替换成newnode insertBefore(newnode, refnode) Node 在childNodes中的refnode之前插入newnode previousSibling Node 指向前一个兄弟节点,如果这个节点就是第一个兄弟节点,那么该值为null nextSibling Node 指向后一个兄弟节点,如果这个节点就是最后一个兄弟节点,那么该值为null attributes NamedNodeMap 包含了代表一个元素的特性的Attr对象,仅用于Element节点 6.HTML DOM
任何基于XML的语言,如XHTML和SVG,因为它们遵循XML语法,所以可以使用上述的Node接口操作。然而很多语言会继续定义它们自己的DOM来扩展XML以提供特定功能。
开发XML DOM的同时,W3C还一起开发了针对XHTML(以及HTML)的DOM。这个DOM定义了一个HTMLDocument一个HTMLElement作为实现基础。每个HTML元素通过它自己的HTMLElement类型表示,如HTMLpElement代表了元素。但有少数的除外。
二、DOM通用节点对象操作
1.DOM的通用属性
alinkColor 激活的链接的颜色,如定义的
bgColor 页面的背景颜色,如定义的
fgColor 页面的文本颜色,如定义的
lastModified 最后修改页面的日期,是字符串
linkColor 链接的颜色,如定义的
referrer 浏览器当前页后退一个位置的url
title标签中显示的文本 定义的
URL 当前页面的url
vlinkColor 访问过的链接的颜色,如
* 这些属性是引用了标签中的旧HTML特性,应该用样式表代替它们。2.DOM的通用集合
ahchors 页面中所有锚的集合(由表示3.DOM通用节点操作
document对象是BOM的一部分,同时也是HTML DOM的HTMLDocument对象的表现形式,即它也是XML DOM Document对象。1查找节点
document.getElementById() 返回对拥有指定 id 的第一个对象的引用。
document.getElementsByName() 返回带有指定名称的对象集合。
document.getElementsByTagName() 返回带有指定标签名的对象集合。
document.getElementsByClassName() 返回带有指定类名的对象集合。document操作元素
第一段文本
第二段文本
2创建节点
document.createAttribute(name) 创建属性名为name的属性节点。
document.createElement() 创建标签名为tagName的元素。
document.createTextNode(text) 创建包含文本text的文本节点。
* 创建其它Node接口定义的节点没有太大用处。因为被更简便的操作替代。3添加节点
Element.appendChild(Node) 添加Node子元素。
Element.insertBefore(newNode, oldNode) 在某个子节点对象前添加新节点。4删除节点
Element.removeChild(Node) 删除Node子元素。5替换节点
Element.replacChild(newNode, oldNode) 替换子元素。document.getElementById() 返回对拥有指定 id 的第一个对象的引用。
document.getElementsByName() 返回带有指定名称的对象集合。
document.getElementsByTagName() 返回带有指定标签名的对象集合。
document.getElementsByClassName() 返回带有指定类名的对象集合。6.节点属性和方法
节点属性和方法包含DOM NOde接口定义的所有属性和方法。HTML DOM 还包括其它的一些属性和方法。详细参见http://www.w3school.com.cn/jsref/dom_obj_all.asp。Element.tagName 返回元素的标签名。
Element.cloneNode() 复制当前元素。
Element.normalize() 合并元素中相邻的文本节点,并移除空的文本节点。
Element.parentNode 返回元素的父节点。
Element.ownerDocument 返回元素的根元素(文档对象)。
nodelist.item() 返回 NodeList 中位于指定下标的节点。
nodelist.length 返回 NodeList 中的节点数。
Element.toString() 把元素转换为字符串。4.DOM通用属性操作
1.查找属性
Element.attributes 返回元素属性的 NamedNodeMap。
Element.hasAttribute() 如果元素拥有指定属性,则返回true,否则返回 false。
Element.hasAttributes() 如果元素拥有属性,则返回 true,否则返回 fals2.获取属性
Element.getAttribute() 返回元素节点的指定属性值。
Element.getAttributeNode() 返回指定的属性节点。3.设置属性
Element.setAttribute() 把指定属性设置或更改为指定值。
Element.setAttributeNode() 设置或更改指定属性节点。4.删除属性
Element.removeAttribute() 从元素中移除指定属性。
Element.removeAttributeNode() 移除指定的属性节点,并返回被移除的节点。5.getattr和setattr获取或设置属性
除了hasAttribute、getAttributes、setAttributes、removeAttribute操作属性,一些属性也可以通过节点.属性的方式获取/设置属性。Element.id 设置或返回元素的 id
Element.style 设置或返回元素的 style 属性。
Element.innerHTML 设置或返回元素的内容。
Element.className 设置或返回元素的 class 属性。
Element.title 设置或返回元素的 title 属性。
Element.textContent 设置或返回节点及其后代的文本内容。
Element.contentEditable 设置或返回元素的文本方向。
Element.dir 设置或返回元素的内容是否可编辑。
Element.accessKey 设置或返回元素的快捷键。
Element.lang 设置或返回元素的语言代码。
Element.namespaceURI 返回元素的 namespace URI。
Element.tabIndex 设置或返回元素的 tab 键控制次序。Element.clientHeight 返回元素的可见高度。
Element.clientWidth 返回元素的可见宽度。
Element.offsetWidth 返回元素的宽度。
Element.offsetLeft 返回元素的水平偏移位置。
Element.offsetParent 返回元素的偏移容器。
Element.offsetTop 返回元素的垂直偏移位置。
Element.scrollHeight 返回元素的整体高度。
Element.scrollLeft 返回元素左边缘与视图之间的距离。
Element.scrollTop 返回元素上边缘与视图之间的距离。
Element.scrollWidth 返回元素的整体宽度。6.检查元素
Element.isContentEditable 设置或返回元素的内容。
Element.isDefaultNamespace() 如果指定的 namespaceURI 是默认的,则返回 true,否则返回 false。
Element.isEqualNode() 检查两个元素是否相等。
Element.isSameNode() 检查两个元素是否是相同的节点。
Element.compareDocumentPosition() 比较两个元素的文档位置。
Element.isSupported() 如果元素支持指定特性,则返回 true。以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!
千博企业网站管理系统标准版2013 Build0206下载系统简介 千博企业建站系统是根据企业客户实际应用需求而提供的一套完整的中小企业网站应用解决方案,协助企业对公司产品进行更深层次的展示、推广。 千博企业建站系统主要面向企业进行产品展示、推广、企业形象展示而设计研发,系统界面简洁大方,管理操作非常简易,可高效构建企业、行业、律师、医院、政府信息门户网站、内部知识网站、信息门户等平台,并内置了专业的内容管理功能模块,可为浏览网站的顾客提供全方位的导购服
相关推荐:
相关文章
javascript异步编程如何理解_promise和async_await怎样使用【教程】
javascript数据结构如何实现_怎样编写栈队列和链表【教程】
javascript性能优化有哪些技巧【教程】
javascript解构赋值是什么_如何提取对象和数组值【教程】
javascript中什么是可选链操作符_它如何防止错误【教程】
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
更多热门AI工具
更多相关专题
string转int在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。
483
2023.08.02
java中boolean的用法在Java中,boolean是一种基本数据类型,它只有两个可能的值:true和false。boolean类型经常用于条件测试,比如进行比较或者检查某个条件是否满足。想了解更多java中boolean的相关内容,可以阅读本专题下面的文章。
351
2023.11.13
c语言中null和NULL的区别c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。
237
2023.09.22
java中null的用法在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。
479
2024.03.01
java基础知识汇总java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。
1503
2023.10.24
pdf怎么转换成xml格式将 pdf 转换为 xml 的方法:1. 使用在线转换器;2. 使用桌面软件(如 adobe acrobat、itext);3. 使用命令行工具(如 pdftoxml)。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
1903
2024.04.01
xml怎么变成word步骤:1. 导入 xml 文件;2. 选择 xml 结构;3. 映射 xml 元素到 word 元素;4. 生成 word 文档。提示:确保 xml 文件结构良好,并预览 word 文档以验证转换是否成功。想了解更多xml的相关内容,可以阅读本专题下面的文章。
2094
2024.08.01
2026赚钱平台入口大全2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。
54
2026.01.31
更多热门下载
更多精品课程
相关推荐/热门推荐/最新课程更多最新文章
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
。









