Node中提供了几种节点遍历的属性:parentNode、childNodes、firstNode/lastNode、
previousSibling/nextSibling、ownerDocument 。
DocumentJavaScript通过Document类型表示文档 。浏览器中的document对象是HTMLDocument的一个实例,表示整个HTML页面 。Document节点具有以下特征:
- nodeType为Node.DOCUMENT_NODE,值为9 。
- nodeName的值为#document 。
- nodeValue的值为null 。
- parentNode的值为null 。
- ownerDocument的值为null 。
- 其子结点可能是一个DocumentType、Element、ProcessingInstruction或Comment 。
- title:取得当前页面的标题,也可以修改当前页面的标题并反映在浏览器的标题栏中 。但不会改变<title>元素 。
- URL:包含页面完整的URL 。
- domain:只包含页面的域名 。
- referrer:保存着链接到当前页面的那个页面的URL 。没有来源页面的情况下,可能包含空字符串 。
ElementElement类型用于表现XML或HTML元素,提供对元素标签名、子节点及特性的访问 。例如<body>和<div>等 。Element节点具有以下特征:
- nodeType为Node.ELEMENT_NODE,值为1 。
- nodeName的值为元素的标签名 。
- nodeValue的值为null 。
- parentNode可能是Document或Element 。
- 其子节点可能是Element、Text、Comment、ProcessingInstruction、CDATASection或EntityReference 。
获取<div id="divId"></div>的标签名:
var div = document.getElementById("divId");console.log(div.tagName);// DIVconsole.log(div.tagName == div.nodeName);// true特性和属性所有HTML元素都由HTMLElement类型表示,不能直接通过这个类型,也是通过它的子类型来表示 。HTMLElement类型直接继承自Element并添加了一些属性 。每个HTML元素中的特性(例如<div id="d1" title="附加信息" lang="en" class="container">中的id、class等)会自动变成DOM对象的属性(class特性与className属性对应) 。这些都可以通过div.id等获取并赋值 。一个元素中的id等是标准的特性,但也有非标准的特性不能使用div.id方式获取 。那么要用什么方法来访问非特性 。
DOM主要提供了几个方法用于对任何特性进行操作,分别是:
- hasAttribute(qualifiedName: string),检查qualifiedName这个特性是否存在 。
- getAttribute(qualifiedName: string),获取qualifiedName这个特性值,如果不存在,则返回null 。
- setAttribute(qualifiedName: string, value: string),设置qualifiedName这个特性的值为value 。设置的特性名会被同意转换为小写形式 。
- removeAttribute(qualifiedName: string),移除qualifiedName这个特性 。
<div id="d1" title="附加信息" lang="en" class="container main" plug-add="添加的非标准的特性">以上面的HTML为例,使用这几种方法 。var div = document.getElementById('d1');div.getAttribute('title');// 附加信息div.hasAttribute('plug-add'); // truediv.setAttribute('title', '修改附加信息');div.removeAttribute('plug-add');有两类特殊的特性,虽有对应的属性名,但属性的值与getAttribute()返回的值并不相同 。【快速了解JavaScript的DOM模型】第一类特性就是style,用于通过css为元素指定样式 。通过getAttribute()返回的style中包含的是CSS文本,而通过属性返回的是一个对象 。
第二类特性是onclick这样的事件处理 。如果通过getAttribute()返回的是相应代码的字符串 。而访问onclick属性返回的是JavaScript函数(如果未指定相应特性,返回的是null) 。
attributes属性Element类型的attributes属性返回该元素所有属性节点的一个集合,该集合是一个"动态"的NamedNodeMap对象 。NamedNodeMap对象拥有下列方法 。
- getNamedItem(name):返回nodeName属性等于name的节点 。
- removeNamedItem(name):从列表中移除nodeName属性等于name的节点 。
- setNamedItem(node):向列表中添加节点,以节点的nodeName属性为索引 。
推荐阅读
- |人力中介如何快速获取蓝领用户?
- 如何了解OSS对文件进行访问控制权限
- 7个办公常用的Word小技巧,简单实用,工作效率快速提升
- 程序员必须要了解的10款终端软件
- adobe 2022版,10刚发布,新版功能介绍
- 项目中不可忽视的JavaScript优化技巧
- 花五分钟带你了解——DDD领域驱动设计
- 在家如何快速练胸肌呢?
- python 用os库和xlrd、xlwd库快速合并相同n个Excel文件操作实例
- 一分钟带你快速了解外资ICP
