dom2和dom3
第十二章 DOM2和DOM3
一.DOM变化
1.针对XML命名空间的变化
2.其他方面的变化
二.样式
1.访问元素的样式
2.操作样式表
3.元素大小

function getElementLeft(element){var actualLeft = element.offsetLeft;var current = element.offsetParent;while (current !== null){actualLeft += current.offsetLeft;current = current.offsetParent;}return actualLeft;}function getElementTop(element){var actualTop = element.offsetTop;var current = element.offsetParent;while (current !== null){actualTop += current. offsetTop;current = current.offsetParent;}return actualTop;}function getBoundingClientRect(element){var scrollTop = document.documentElement.scrollTop;var scrollLeft = document.documentElement.scrollLeft;if (element.getBoundingClientRect){if (typeof arguments.callee.offset != "number"){var temp = document.createElement("div");temp.style.cssText = "position:absolute;left:0;top:0;";document.body.appendChild(temp);arguments.callee.offset = -temp.getBoundingClientRect().top - scrollTop;document.body.removeChild(temp);temp = null;}var rect = element.getBoundingClientRect();var offset = arguments.callee.offset;return {left: rect.left + offset,right: rect.right + offset,top: rect.top + offset,bottom: rect.bottom + offset};} else {var actualLeft = getElementLeft(element);var actualTop = getElementTop(element);return {left: actualLeft - scrollLeft,right: actualLeft + element.offsetWidth - scrollLeft,top: actualTop - scrollTop,bottom: actualTop + element.offsetHeight - scrollTop}}}function getDimensions(){var rect = getBoundingClientRect(document.getElementById("myDiv"));alert("left: " + rect.left + "\nright: " + rect.right + "\ntop: " + rect.top + "\nbottom: " + rect.bottom);}</script></head><body style="padding: 10px; margin: 0"><div style="margin: 20px"><div style="padding: 20px"><div id="myDiv" style="width: 100px; height: 50px; background-color: red; border: 1px solid black"></div></div></div><input type="button" value="Get Element Dimensions" onclick="getDimensions()" /></body>
三.遍历
1.NodeIterator
<head><title>NodeIterator Example</title><script type="text/javascript">function makeList() {var div = document.getElementById("div1");var filter = function(node){return (node.tagName.toLowerCase() == "li") ?NodeFilter.FILTER_ACCEPT :NodeFilter.FILTER_SKIP;};var iterator = document.createNodeIterator(div, NodeFilter.SHOW_ELEMENT, filter, false);//For Firefox: iterator = document.createTreeWalker(div, NodeFilter.SHOW_ELEMENT, filter, false);var output = document.getElementById("text1");var node = iterator.nextNode();while (node !== null) {output.value += node.tagName + "\n";node = iterator.nextNode();}}</script></head><body><p><strong>Note:</strong> The <code>NodeIterator</code> object has only been implemented in Internet Explorer 9, Chrome, Firefox (version 3.5 and higher), Opera (version 7.6 and higher) and Safari (version 1.3 and higher). It has not been implemented in Internet Explorer or Firefox (so this example won't work).</p><div id="div1"><p><b>Hello</b> world!</p><ul><li>List item 1</li><li>List item 2</li><li>List item 3</li></ul></div><textarea rows="10" cols="40" id="text1"></textarea><br /><input type="button" value="Make List" onclick="makeList()" /></body>
2.TreeWalker
<script type="text/javascript">function makeList() {var div = document.getElementById("div1");var filter = function(node){return (node.tagName.toLowerCase() == "li") ?NodeFilter.FILTER_ACCEPT :NodeFilter.FILTER_SKIP;};var walker = document.createTreeWalker(div, NodeFilter.SHOW_ELEMENT, filter, false);var output = document.getElementById("text1");var node = walker.nextNode();while (node !== null) {output.value += node.tagName + "\n";node = walker.nextNode();}}</script>
四.范围
1.DOM中的范围
2.IE8及更早版本中的范围
dom2和dom3的更多相关文章
- 12. javacript高级程序设计-DOM2和DOM3
1. DOM2和DOM3 DOM2级规范定义了一些模块,用于增强DOM1级.“DOM2级核心”为不同的DOM类型引入了一些与XML命名空间有关的方法,这些变化只在使用XML或者XHTML,对于HTML ...
- javascript高级程序设计第3版——第12章 DOM2与DOM3
12章——DOM2与DOM3 为了增强D0M1,DOM级规范定义了一些模块. DOM2核心:为不同的DOM类型引入了一些与XML命名空间有关的方法,还定义了以编程方式创建Document实例的方法: ...
- Javascript高级编程学习笔记(49)—— DOM2和DOM3(1)DOM变化
DOM变化 我们知道DOM有许多的版本,其中DOM0和DOM2这两个级别以对事件的纳入标准而为人所知 但是呢,这里不讲事件,在后面会有专门和事件有关的部分作为详细讲解 这里就只讲一下DOM2和DOM3 ...
- DOM2和DOM3读书笔记
二刷<高程>做的笔记,没什么技术含量就不发到首页啦!~DOM1级主要定义HTML和XML文档底层结构,DOM2和DOM3在这个结构基础上引入更多交互能力,也支持更高级的XML特性.DOM2 ...
- [转]DOM0,DOM2,DOM3事件处理方式区别
转 DOM0,DOM2,DOM3事件处理方式区别 2016年07月13日 15:00:29 judyge 阅读数:1457更多 个人分类: js与前端 引子: 文档对象模型是一种与编 ...
- 《JavaScript高级程序设计》笔记:DOM2和DOM3(十二)
DOM1级主要定义的是HTML和XML文档的底层结构.DOM2级和DOM3级在这个结构基础上引入了更多的交互能力,也支持更高级的XML特性.为此DOM2级和DOM3级分为了很多的模块(模块直接具有某种 ...
- 全栈JavaScript之路( 二十四 )DOM2、DOM3, 不涉及XML命名空间的扩展
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/hatmore/article/details/37658167 (一)DocumentType 类型 ...
- dom0、dom2、dom3事件
https://www.jianshu.com/p/3acdf5f71d5b addEventListener():可以为元素添加多个事件处理程序,触发时会按照添加顺序依次调用. removeEven ...
- Javascript高级编程学习笔记(54)—— DOM2和DOM3(6)范围选择
范围 为了让开发人员更加方便地控制页面“DOM2级遍历和范围”模块定义了“范围”接口 通过该接口开发人员可以选择文档中的一个区域,而不必考虑元素的界限 在常规操作不能有效地修改文档时,使用范围往往可以 ...
随机推荐
- table表格中的内容溢出布局方式
什么是内容溢出呢?其实就是当文字很多的时候,如果内容区域只有那么长,那么多出的部分以点点点代替. 这次做的案例是在table里面,我们知道当我们在table里输入过多的文字内容的时候会撑乱表格,例如一 ...
- Groovy中文教程(链接收藏)
学习Gradle前,需要有一个Groovy语言的基础,以免被Groovy的语法困扰,反而忽略了Gradle的知识.这里有一个Groovy的简明中文教程文档,可以快速学习Groovy的一些语法:http ...
- classLIST元素增删改查方法
window.onload=function () { var oDiv=document.getElementsByTagName('div')[0]; var oInP=document.getE ...
- 框架 Onboard-引导页样式制作库
设置背景图片或者背景movie,然后在它们之上生成数个ViewController,默认是顶部一张图片,下面是标题和详细介绍,最下面是按钮和pagegithub地址 https://github.c ...
- c#文本框限制输入内容
//限制输入不能为中文和全角 private void zhbh_KeyPress(object sender, KeyPressEventArgs e) { ...
- WebBrowser Control
https://msdn.microsoft.com/en-us/library/aa752040(v=vs.85).aspx WebBrowser Control
- Visro 应用的前端模板工具介绍 -JsRender
1.什么是JsRender: JsRender是一款JavaScript模版引擎,是具有简单直观,功能强大,可扩展的,早期版本是基于JQUERY 写的,后来作者重构了,就不再依赖JQUERY了. 它的 ...
- 一款新的PYTHON数据科学利器:yhat
偶然看文章发现的一个新的python IDE,外表很清新,也很新颖. https://www.yhat.com/products/rodeo 看图说话,软件的布局确实很新颖,和Notebook类似,也 ...
- 4、jvm内存回收——器
内存回收---->垃圾回收---->GC GC 三基础,一个综合G1 串行:单线程,回收暂停其他 并行:多线程,回收暂停其他 并发:多线程,回收不暂停?! 成功好说,失败Serial Ol ...
- ajax里面success函数return上层接收不到
开发一个小功能,在success fail里直接return,没有收到返回值.排查,查了下往上的博客,参考了以下三个: http://blog.csdn.net/fairyhawk/article/d ...