2015-03-11——简析DOM规范
DOM 0级
指浏览器专有的,非标准的方法、对象和集合。
DOM 1级 1998年发布
包括:
DOM core
DOM html
DOM 2级 DOM2 core 2000年发布 DOM2 html 2003年发布
包括:
DOM2 core
DOM2 html
DOM2 events
DOM2 style
DOM2 traversal and range 遍历
DOM2 views 提供访问和更新文档表现的能力。
DOM 3级 2007年发布
包括:
DOM3 core
DOM3 load and save
DOM3 validation
DOM3 events
DOM3 xpath 示例:abc/a
DOM3 views
利用DOMImplementation对象,检测浏览器是否支持的某DOM级别的某功能
在浏览器中DOMImplementation对象被实例化为document.implementation
验证浏览器是否实现某级DOM的某模块
document.implementation.hasFeature('模块名称', 'DOM级别');
示例:document.implementation.hasFeature('Core', '1.0');
DOM核心
浏览器解析html文件时,会根据自身支持的DOM模块将标记转换成element对象。
window
document 整个文档 扩展自node对象
html => documentElement 根元素
DOM规范中,每个标签之间的空白符都被解析为text节点对象。(IE中会忽略空白符,不解析为text节点)
继承
element对象继承了node对象的所有属性和方法。
继承链如下:
Node DOM2核心 nodeName,nodeType,nodeValue,hasChildNodes,hasAttributes,insertBefore,appendChild...
|
Element DOM2核心 tagName,getAttribute,setAttribute,removeAttribute...
|
HTML Element DOM2 HTML id,title,className...
|
HTMLAnchorElement(a标签) DOM2 HTML href,name,rel,accessKey,tabIndex,blur,focus...
核心node对象
nodeName Element.nodeName:标签名大写;Attr.nodeName:属性名小写;Text.nodeName:#text;
nodeValue 只适用于Text,Attr,Comments(注释),CDATASection,ProcessingInstructions对象。其它类型对象返回null
nodeType Node.ELEMENT_NODE 1,Node.ATTRIBUTE_NODE 2,Node.TEXT_NODE 3;(IE中不存在Node静态类对象。)
parentNode
childNodes 返回类数组的NodeList对象
示例:document.body.childNodes[0] or document.body.childNodes.item(0)
firstChild
lastChild
previousSibling
nextSibling
attributes 返回类数组的NamedNodeMap对象,一个节点所有属性的集合。相对于NodeList对象有其它一些便捷方法,getNamedItem()...,如:document.body.childNodes[0].getNamedItem('href');
示例:document.body.childNodes[0].attributes[0] or document.body.childNodes.item(0).attributes.item(0)
ownerDocument 指向节点所属根文档,document
hasChildNodes
hasAttributes IE不支持
insertBefore 示例:newNode.insertBefore(refNode);
appendChild 示例:parentNode.appendChild(newNode);
removeChild 示例:parentNode.removeChild(refNode);
replaceChild 示例:parentNode.replaceChild(newNode, refNode);
cloneNode(true/false) 示例:refNode.cloneNode(true)
核心Element对象
getAttribute(name)
setAttribute(name, value)
removeAttribute(name)
还有一些基于DOM Attr节点对象的方法
getAttributeNode(name) 返回Attr节点
setAttributeNode(newAttr) 基于新的Attr节点对象设置属性
removeAttributeNode(oldAttr) 删除指定的属性节点
在Element对象中查找Element对象的唯一方法:
getElementsByTagName 返回类数组的NodeList对象,只返回Element类型节点,因此不包含Text类型节点。
核心Document对象
非标准:document.all, document.all[id]
document.documentElement html标签
利用Document对象创建几种常用的节点
createAttribute(name)
createComment(data)
createElement(tagName)
createTextNode(data)
...
利用Document对象查找Element对象
getElementById
getElementsByTagName
DOM核心中不包含getElementsByClassName,因为XML文档没有类属性。该方法在DOM2 HTML中定义
DOM2 HTML
DOM2 HTML的HTMLDocument对象
title title标签中的字符串
referrer 包含连接到当前页面的前一个页面的URL
domain 当前站点的域名
URL 当前页面在地址栏中的URL
body 引用body节点
images 当前文档中所有<img>标签的集合
applets 当前文档中所有<applet>标签的集合
links 当前文档中所有<link>标签的集合
forms 当前文档中所有<forms>标签的集合
anchors 当前文档中所有<a>标签的集合
cookie 当前页面中所有cookie信息的字符串
open() 打开一个文档,一接受write()方法输出
close() 关闭一个文档
write(data)
writeln(data) 写入文档的同时写入一个换行符
getElementsByName(elementName)
一些非标准的属性
frames
plugins
scripts
stylesheets
DOM2 HTML的HTMLElement对象
id
title
lang 在RFC 1766中为节点语言定义的语言代码
className
2015-03-11——简析DOM规范的更多相关文章
- Android 11(R) Power HAL AIDL简析 -- 基本接口
Android 11(R) Power HAL AIDL将分三篇文章来介绍: Android 11(R) Power HAL AIDL简析 -- 基本接口 Android 11(R) Power HA ...
- Java Annotation 及几个常用开源项目注解原理简析
PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示 ...
- Nutch学习笔记二——抓取过程简析
在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...
- JDK框架简析--java.lang包中的基础类库、基础数据类型
题记 JDK.Java Development Kit. 我们必须先认识到,JDK不过,不过一套Java基础类库而已,是Sun公司开发的基础类库,仅此而已,JDK本身和我们自行书写总结的类库,从技术含 ...
- 2015最新移动App设计尺寸视觉规范【图文版】(转)
如今手机app的屏幕设计尺寸参差不齐,仿佛来到了移动界面尺寸战国时代,每家移动设备制造公司都为了迎合大众的口味,各家都在2014年大放光彩.2015年也将会是我们移动APP设计界快速发展的一年. 因为 ...
- Android 启动过程简析
首先我们先来看android构架图: android系统是构建在linux系统上面的. 所以android设备启动经历3个过程. Boot Loader,Linux Kernel & Andr ...
- iOS 学习笔记 六 (2015.03.28)常见错误
2015.03.28 1. property's synthesized getter follows Cocoa naming convention for returning 'owned' ob ...
- 【ACM/ICPC2013】POJ基础图论题简析(一)
前言:昨天contest4的惨败经历让我懂得要想在ACM领域拿到好成绩,必须要真正的下苦功夫,不能再浪了!暑假还有一半,还有时间!今天找了POJ的分类题库,做了简单题目类型中的图论专题,还剩下二分图和 ...
- SimpleDateFormat使用简析
title: SimpleDateFormat使用简析 date: 2016-07-11 11:48:20 tags: Java SimpleDateFormat --- [转载自博客:http:// ...
随机推荐
- 利用dd命令制作u盘iso镜像
现在安装系统都是用u盘安装,那么制作u盘的iso镜像就是必须的了.现在此类工具倒是不少,但是,好用的不多,有的还收费.唉,还是用dd吧,老配方,老味道. 首先:要df -h一下,看看u盘的盘符,类似 ...
- make之eval函数
函数原型: $(eval text) 它的意思是 text 的内容将作为makefile的一部分而被make解析和执行. 需要注意的是该函数在执行时会对它的参数进行两次展开,第一次展开是由函数本身完成 ...
- 设置VMware随系统开机自动启动并引导虚拟机操作系统
设置VMware随系统开机自动启动并引导虚拟机操作系统 转载 2012年03月15日 19:50:53 标签: vmware / 虚拟机 / windows / parameters / tools ...
- iOS swift HandyJSON组合Alamofire发起网络请求并转换成模型
在swift开发中,发起网络请求大部分开发者应该都是使用Alamofire发起的网络请求,至于请求完成后JSON解析这一块有很多解决方案,我们今天这里使用HandyJSON来解析请求返回的数据并转化成 ...
- list<> 中find的使用
昨天要在 std::list<std::string> 中判断是否存在某一字符串 std::string . 我首先想到的是 list迭代+std::string重载的"==&q ...
- js Date操作
new Date(new Date().getTime() - 24 * 24 * 60 * 60 * 1000)类似C#中的AddDays,返回一个月前的时间 //时间格式化方法 v ...
- Lingo (Spring Remoting) : Passing client credentials to the server
http://www.jroller.com/sjivan/entry/lingo_spring_remoting_passing_client Lingo (Spring Remoting) : P ...
- python之list去重
问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变. 直观方法 最简单的思路就是: 复制代码代码如下: ids = [1,2,3,3,4,2,3,4,5,6,1]news_ids = ...
- encodeURI() 的用法
定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码.[通用资源标识符(Uniform Resource Identifier, 简称"URI")] 语法 en ...
- jquery动态生成html代码绑定事件
今天工作中需要在页面动态生成html代码,但发现新生成的代码的click事件失效了(非动态生成的代码已经绑定了click事件),于是在网上找了很多解决办法,很多都比较复杂,且使用的jquery都比较老 ...