《javascript高级程序设计》笔记(十二)

DOM2和DOM3

(一)DOM变化

1.针对XML命名空间的变化

有了XML命名空间,不同XML温度的元素可以混在一起,不用担心命名冲突。

命名空间要使用xmlns特性来指定,XHTML的命名空间是http://www.w3.org/1999/xml,应包含在<html>里。

①Node类型的变化

②Document类型的变化

③Element类型的变化

④NameNodeMap类型的变化

2.其他方面的变化

DocumentType类型的变化

Document类型的变化

Node类型的变化

框架的变化

(二)样式

检测浏览器是否支持DOM2级定义的CSS能力。

var supportsDOM2CSS = document.implementation.hasFeature("CSS", "2.0");

var supportsDOM2CSS2 = document.implementation.hasFeature("CSS2", "2.0");

1.访问元素的样式

style包含通过HTML的style特性指定的所有样式信息,但不包含外部样式表或嵌入样式表经层叠而来的样式。

使用短划线的CSS属性名要转换成驼峰大小写形式。

background-image         style.backgroundImage

color                             style.color

display                          style.color

font-family                    style.fontFamily

float                             cssFloat       styleFloat(IE)

①DOM样式属性和方法

cssText:访问style特性的CSS代码。

length:应用给元素的CSS属性的数量。

parentRule:表示CSS信息的CSSRule对象。

getproperyCSSValue(propertyName):返回包含给定属性值的CSSValue对象。

getpropertyPriority(propertyName):如果给定属性使用了!important设置就返回"important",否则返回空字符串。

item(index):返回给定位置的CSS属性的名称。

propertyNameValue(propertyName):返回给定属性的字符串值。

removeProperty(propertyName):从样式移除给定属性。

setProperty(propertyName,value,priority):将给定属性设置为相应的值,加上优先权标准(“important”或空字符串)。

cssText可以返回和重写style特性的值。

length属性与item()方法使用,迭代在元素中定义的CSS属性。

getPropertyCSSValue()方法返回包含两个属性的CSSValue对象:cssText和cssValueTyle。cssValueTyle:  0:继承的值  1:基本的值   2:值列表 3:自定义的值。

IE9+ Firefox Safari Opera9+ Chrome

②计算的样式

getComputedStyle()  接收两个参数:要计算的元素和伪元素字符串。

元素应用了嵌入式样式表和style特性,可以计算出样式。

IE不支持getComputedStyle()方法,每个具有style属性的元素都有curentStyle属性。

所有计算的样式都是只读。

2.操作样式表

CSSstyleSheet类型表示样式表,包括<link>和<style>元素的样式表,是一套只读接口(有一个属性例外)。

disabled:样式表是否被禁用的布尔值,可读/可写,设置为true可以禁用样式表。

//是否应用样式表
 function toggleStyleSheet(){
          document.styleSheets[0].disabled = !document.styleSheets[0].disabled;
 }

①CSS规则

CSSRule 对象表示样式表的每一条规则。

②创建规则

insertRule() 向现有样式表添加新规则,接收两个参数:规则文本和表示在哪里插入规则的索引。

Firefox Safari Opera Chrome

IE8及更早 addRule()

③删除规则

deleteRule()

3.元素大小

1.偏移量 :内边距、滚动条和边框大小(不包括外边距)。4个属性取得元素的偏移量。

offsetHeight  offsetWidth   offsetLeft  offsetTop

offsetLeft和offsetTop和包含元素有关,包含元素的引用保存在offsetParent属性,offsetParent属性不一定与parentNode的值相同。

取得元素在页面的偏移量:将元素的offsetLeft和offsetTop与其offsetParent的相同属性相加循环至根元素。

        function getElementLeft(element){
            var actualLeft = element.offsetLeft;
            var current = element.offsetParent;

            while (current !== null){
                actualLeft += current.offsetLeft;
                current = current.offsetParent;
            }

            return actualLeft;
        }

对于使用表格和内嵌框架会不同准确。

2.客户区大小

clientWidth    clientHeight

③滚动大小

指包含滚动内容的元素的大小,有些元素需要通过CSS的overflow属性设置才能滚动。

scrollHeight:没有滚动条,元素内容的总高度。

scrollWidth:没有滚动条,元素内容的总宽度。

scrollLeft:被隐藏在区域左侧的像素数,通过设置这个属性可以改变元素的滚动位置。

scollTop:被隐藏在区域上侧的像素数,通过设置这个属性可以改变元素的滚动位置。

这些属性在不同浏览器会不一致。

④确定元素大小

getBoundingClientRect() :返回一个矩形属性,包含left、top、right、bottom。

IE8及之前版本认为文档左上角左边是(2,2),其他浏览器是(0,0)。

(三)遍历

DOM遍历是深度优先的DOM结构遍历。,移动的方向至少有两个。

1.NodeIterator

2.TreeWalker

(四)范围

createRange()

1.DOM中的范围

①用DOM范围实现简单选择

②用DOM范围实现复杂选择

③操作DOM范围的内容

④插入DOM范围的内容

⑤折叠DOM的范围

⑥比较DOM范围

⑦复制DOM范围

2.IE8及更早版本中的范围

createTextRange()

①用IE范围实现简单的选择

②用IE范围实现复杂的选择

③操作IE范围的内容

④折叠IE范围

⑤比较IE范围

⑥复制IE范围

时间: 2024-08-15 02:40:00

《javascript高级程序设计》笔记(十二)的相关文章

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(

javascript高级程序设计——笔记

javascript高级程序设计--笔记 基本概念 基本数据类型包括Undefined/Null/Boolean/Number和String 无须指定函数的返回值,实际上,未指定返回值的函数返回的是一个特殊的undefined值 变量.作用域和内存问题 基本类型值在内存中占据固定大小的空间,因此保存在栈内存中 引用类型的值是对象,保存在堆内存中 确定一个值是哪种基本类型用typeof,确定一个值是哪种引用用instanceof 所有变量都存在于一个执行环境当中,这个执行环境决定了变量的生命周期,

javascript高级程序设计笔记1

最近在看javascript高级程序设计,看之前觉得自己的js学得还不错,然后,看了没几页就觉得自己好像没有学过一样,这主要写写我以前不完全了解的一些知识. 首先是关于基本数据类型的,从Number开始,以前经常用parseInt来转换数值,看过书才知道,这个函数的本意是专门用于把字符串转换成数值,而且以前也不知道它具体是怎么一个转换规则.先来看看Number()函数的转换规则: 1.如果是Boolean 值,true 和false 将分别被转换为1 和0.2.如果是数字值,只是简单的传入和返回

【javascript高级程序设计笔记】第一章与第三章

第1章 javascript简介 1.2Javascript实现 一个完整的javascript实现由下列三个不同的部分组成 核心(ECMAScript) 提供核心语言功能 文档对象模型(DOM) 提供访问和操作网页内容的方法和接口 浏览器对象模型(BOM)提供与浏览器交互的方法和接口 ECMAScript 它规定了这门语言的下列组成部分: 语法  类型  语句  关键字 保留字 操作符 对象 ECMA-262第5版,发布于2009年. 文档对象模型(DOM) Document Object M

读书笔记 - js高级程序设计 - 第十二章 DOM2和DOM3

Node类型的变化   访问元素的样式 myDiv.style.backgroundColor = "red" myDiv.style.width = "100px" 计算的样式 记住所有计算的样式都是只读的 偏移量 offsetHeight 外边框外 offsetWidth offsetLeft  外边框外 到 左端 offsetTop  客户区的大小 clientWidth  内边框外缘 clientHeight 内边框外缘 滚动大小 scrollHeight

【javascript高级程序设计笔记】第六章OOP

忙了一段时间,加了将近一个月的班. 书也落下没看,上次看到第七章(这部分笔记大概还是9月份的吧),偶尔看到很吃力.看的速度慢下来. 学习就是一个慢慢积累慢慢沉淀的过程.看书时没有明显觉得提升.但在看完书后近段时间工作中写代码,明显感觉效率还是有提升,基础知识牢固了. 这本书是第二次看,这次很认真的遍读和做笔记,笔记的文字均是自己边看边敲的,这样才更好的真正的吸收到一部分吧! 这些天在看web响应式设计:HTML5和CSS3实战 第6章 面向对像的程序设计 6.1.1属性类型 ECMAScript

javascript高级程序设计笔记(第5章 引用类型)

1.Object类型 两种方式定义:对象字面量.new 两种方式访问:括号.点 2.Array类型 2.1  定义方式:new Array.数组字面量 2.2  lenght属性:可以利用它方便的想数组末尾添加元素 2.3  检测数组 instanceof isArray()方法  2.4  toString().soLocaleString().valueOf().join()方法 2.5.栈方法   push()方法:逐个添加到数组末尾,并返回修改后的数组长度 pop()方法:返回数组的最后

javascript高级程序设计--笔记01

概述 JavaScript的实现包含三个部分: 1  核心(ECMAScript)   提供核心语言功能 2  文档对象模型(DOM)  一套提供了访问以及操作网页内容的API 3  浏览器对象模型(BOM)  一套提供了与浏览器交互的API ECMAScript仅仅定义了这门语言的基础,如定义了:语法.类型.语句.关键字等,实际上这门语言本身不包含输入输出定义. 而现实中,ECMAScript大多借用了某些宿主环境(如web浏览器,Node,Adobe Flash)来实现丰富的功能,这些宿主环

javascript事件小结(事件处理程序方式)--javascript高级程序设计笔记

1.事件流:描述的是从页面中接收事件的顺序. 2.事件冒泡:IE的事件流叫做事件冒泡,即事件开始从具体的元素(文档中嵌套层次最深的那个节点)接收,然后逐级向上传播到不具体的节点(文档). 3.事件捕获:指不太具体的节点应该更早接收到事件,而具体的节点应该是最后接收到事件. 4.DOM事件流:“DOM2级事件”规定的事件流包含三个阶段:事件捕获,处于目标阶段和事件冒泡阶段.(实际的目标元素在捕获阶段接不会收到事件) IE不支持DOM事件流,Opera.safari.chrome.firefox支持

JavaScript高级程序设计笔记(一)

1. ECMA规定了这门语言的下列组成部分: 语法. 类型.语句. 关键字.保留字.操作符. 对象 2. 什么是 ECMAScript 兼容支持 ECMA描述的所有"类型.值.对象.属性.函数以及程序句法和语义"支持 Unicode 字符标准. 此外,兼容的实现还可以进行下列扩展.添加 ECMA没有描述的"更多类型.值.对象.属性和函数".支持 ECMA没有定义的"程序和正则表达式语法". 3. 5种简单数据类型: Undefined(不明确的,