1、第 1 章 JavaScript 概述1995 年 Netscape 公司和 Sun 公司联合开发出 JavaScript 脚本语言,并在其 Netscape Navigator 2 中实现了 JavaScript 脚本规范的第一个版本即 JavaScript 1.0 版, 不久就显示了其强大的生机和发展潜力。由于当时 Netscape Navigator 主宰着 Web 浏览器市场,而 Microsoft 的 IE 则扮演追赶者的角色,为了跟上 Netscape 步伐,Microsoft 在其 Internet Explorer 3 中以 JScript 为名发布了一个 JavaScript
2、 的克隆版本 JScript 1.0。 1997 年,为了避免无序竞争,同时解决 JavaScript 几个版本语法、特性等方面的混乱,JavaScript 1.1 作为草案提交给 ECMA (欧洲计算机厂商协会) ,并由 Netscape、 Sun、 Microsoft、Borland 及其它一些对脚本语言比较感兴趣的公司组成的 TC39(第 39 技术委员会:以下简称 TC39)协商并推出了 ECMA-262 规范版本。JavaScript 有何特点 JavaScript 是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言,主要用于创建具有交互性较强的动态页面。主要具有如下特点: 基
3、于对象:JavaScript 是基于对象的脚本编程语言,能通过 DOM(文档结构模型)及自身提供的对象及操作方法来实现所需的功能。 事件驱动:JavaScript 采用事件驱动方式,能响应键盘事件、鼠标事件及浏览器窗事件等,并执行指定的操作。 解释性语言:JavaScript 是一种解释性脚本语言,无需专门编译器编译,而是在嵌入 JavaScript 脚本的 HTML 文档载入时被浏览器逐行地解释,大量节省客户端与服务器端进行数据交互的时间。 实时性:JavaScript 事件处理是实时的,无须经服务器就可以直接对客户端的事件做出响应,并用处理结果实时更新目标页面。 动态性:JavaScrip
4、t 提供简单高效的语言流程,灵活处理对象的各种方法和属性,同时及时响应文档页面事件,实现页面的交互性和动态性。 跨平台:JavaScript 脚本的正确运行依赖于浏览器,而与具体的操作系统无关。只要客户端装有支持 JavaScript 脚本的浏览器,JavaScript 脚本运行结果就能正确反映在客户端浏览器平台上。 引入 JavaScript 脚本代码到 HTML 文档中1通过 与标记对引入 除了与 标记对之间的内容外,都是最基本的 HTML 代码,可见和标记对将 JavaScript 脚本代码封装并嵌入到 HTML 文档中。注意:所谓标记对,就是必须成对出现的标记,否则其间的脚本代码不能被
5、浏览器解释执行。浏览器载入嵌有 JavaScript 脚本的 HTML 文档时,能自动识别 JavaScript 脚本代码起始标记 和结束标记 ,并将其间的代码按照解释 JavaScript 脚本代码的方法加以解释,然后将解释结果返回 HTML 文档并在浏览器窗口显示。下面重点介绍 标记的几个属性: language 属性:用于指定封装代码的脚本语言及版本,有的浏览器还支持 perl、VBScript 等,所有脚本浏览器都支持 JavaScript(当然,非常老的版本除外) ,同时language 属性默认值也为 JavaScript; type 属性:指定 和标记对之间插入的脚本代码类型;
6、src 属性:用于将外部的脚本文件内容嵌入到当前文档中,一般在较新版本的浏览器中使用,使用 JavaScript 脚本编写的外部脚本文件必须使用 .js 为扩展名,同时在和标记对中不包含任何内容,如下: 2通过 标记的 src 属性引入3通过 JavaScript 伪 URL 引入 在多数支持 JavaScript 脚本的浏览器中,可以通过 JavaScript 伪 URL 地址调用语句来引入 JavaScript 脚本代码。伪 URL 地址的一般格式如下: JavaScript:alert(“Hello World!“)第 2 章 JavaScript 语言基础JavaScript 脚本语言
7、作为一门功能强大、使用范围较广的程序语言,其语言基础包括数类型、变量、运算符、函数以及核心语句等内容。2.1 编程准备2.1.1 脚本执行顺序 JavaScript 脚本解释器将按照程序代码出现的顺序来解释程序语句,因此可以将函数定义和变量声明放在和之间,此时与函数体相关的操作不会被立即执行。2.1.2 大小写敏感 JavaScript 脚本程序对大小写敏感,相同的字母,大小写不同,代表的意义也不同,如变量名 name、Name 和 NAME 代表三个不同的变量名。在 JavaScript 脚本程序中,变量名、函数名、运算符、关键字、对象属性等都是对大小写敏感的。同时,所有的关键字、内建函数以
8、及对象属性等的大小写都是固定的,甚至混合大小写,因此在编写 JavaScript脚本程序时,要确保输入正确,否则不能达到编写程序的目的。2.1.3 分号 在编写脚本语句时,用分号作为当前语句的结束符,例如: var x=25; var y=16; var z=x+y; 当然,也可将多个语句写在同一行中,例如: var x=25;var y=16;var z=x+y; 值得注意的是,为养成良好的编程习惯,尽量不要将多个语句写在一行中,避免降低脚本代码的可读性。2.1.4 块 在定义函数时,使用大括号“”将函数体封装起来,例如: function muti(m,n) var result=m*n;
9、 return result; 在使用循环语句时,使用大括号“”将循环体封装起来,例如: if(ageonblur 元素失去焦点 onchange 用户改变域的内容 onclick 鼠标点击某个对象 大多数ondblclick 鼠标双击某个对象 大多数onerror 当加载文档或图像时发生某个错误onfocus 元素获得焦点 onkeydown 某个键盘的键被按下 表单元素,onkeypress 某个键盘的键被按下并释放 表单元素,onkeyup 某个键盘的键被松开 表单元素,onload 某个页面或图像被完成加载 onmousedown 某个鼠标按键被按下 大多数onmousemove 鼠标
10、移动时 大多数onmouseout 鼠标从某元素移开 大多数onmouseover 鼠标被移到某元素之上 大多数onmouseup 某个鼠标按键被松开 大多数onreset 重置按钮被点击 onresize 窗口或框架被调整尺寸 onselect 文本被选定 onsubmit 提交按钮被点击 onunload 用户退出页面 事件处理模型基本事件模型:也称 0 级 DOM,它通过简单的属性赋值的方法将事件处理函数绑定到指定元素上。该模型比较简单,但功能较小。标准事件模型:由 W3C 制定,包括 DOM1.0、DOM2.0 和 DOM3.0 三个不同版本。目前大部分浏览器都能够支持 DOM1.0,
11、IE 部分支持二级 DOM。基本事件模型绑定事件法 1,静态绑定。把 JS 脚本代码作为属性值直接赋值给事件属性。按钮法 2,动态绑定。利用 DOM 对象属性进行赋值。document.getElementById(“btn”).conlick = function() alert(“hello”);事件处理返回值事件处理函数返回值一般没有实际价值,不过可以利用事件处理返回值决定下一步操作。例如 form 的 onsubmit 事件,返回值为假,浏览器将禁止表单提交数据。/this 表示当前事件句柄的所有者标准事件模型基本事件模型中,浏览器把事件绑定到发生事件的具体元素上。如果定义了合适的事件
12、处理程序,则会执行这个处理程序,除此之外不执行其他操作。但在二级 DOM 标准事件中,事件处理程序比较复杂。事件处理分为三个阶段:捕捉阶段:首先,事件从 Document 对象沿着 DOM 树向下传播到目标节点,如果目标的任何一个父节点注册了捕捉事件的处理程序,那么事件在传播过程中就会首先运行这个程序。目标阶段:下一个阶段发生在目标节点,注册在目标节点上的相应的事件处理程序就会执行。起泡阶段:最后是事件将从目标节点向上传回给父节点。如果父节点有相应的事件处理程序也会处理。在 IE 中,没有捕捉阶段,但有起泡阶段。在 IE6 中,就是把cancelBubble 设置为 true。window.e
13、vent.cancelBubble = true;事件注册(标准事件模型)在基本事件模型中,用对象的属性来绑定事件处理程序,在标准事件模型中,可以调用对象的方法 addEventListener 为特定元素注册事件处理程序。addEventListener(String type, Function listener, Boolean useCapture)第一参数是要注册处理程序的类型名。事件类型与事件属性不同,事件类型名没有事件属性的 on 字符前缀。第二参数是处理程序函数,在指定类型的事件发生时调用函数。第三参数是布尔值,如果为 true,则指定的事件处理程序将在事件传播的捕捉阶段用于捕
14、捉事件;false 则在事件传播的冒泡阶段触发响应。var btn = document.getElementsByTagName(“button”);for (var i in btn) btni.addEventListener(“click”,function() alert(this.innerHTML);,true);兼容 IE 的事件处理方法IE 不支持标准事件模型,但标准事件模型能够兼容基本事件模型var p1 = document.getElementById(“p1”);/兼容 IE 事件处理p1.onmouseover = function() this.style.bac
15、kground = blue; p1.onmouseout = function() this.style.background = red; /为段落元素注册两个事件处理函数p1.addEventListner(“mouseover”,function() this.style.background = blue; ,true);p1.addEventListner(“mouseout”,function() this.style.background = red; ,true);IE 事件模型IE,每个元素和 Window 对象都包含两个方法:attachEvent(),detachEve
16、nt()。/绑定事件p.attachEvent(“onlick”,function() alert(“p”); );/销毁事件p.detachEvent(“onlick”,f);function f() alert(“p”); 第 4 章 String Math Array 数据对象Math 对象Math 对象的作用是执行数学计算,它提供了标准的数学常量和函数库。Math 属性名称 属性 名称 属性欧拉常数 e Math.E 2 的自然对数 Math.LN2圆周率 Math.PI 10 的自然对数 Math.LN102 的平方根 Math.SQRT2 以 2 为底 e 的对数 Math.LOG
17、2E1/2 的平方根 Math.SQRT1_2 以 10 为底 e 的对数 Math.LOG10EMath 方法方法 描述abs(x) 返回数的绝对值acos(x) 返回数的反余弦值asin(x) 返回数的反正弦值atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值atan2(y,x) 返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)ceil(x) 返回大于等于 x 的最小整数cos(x) 返回数的余弦exp(x) 返回 e 的 x 次幂( ex)。floor(x) 返回小于等于 x 的最大整数log(x) 返回数的自然对数(
18、底为 e)max(x,y) 返回 x 和 y 中的最高值min(x,y) 返回 x 和 y 中的最低值pow(x,y) 返回 x 的 y 次幂random() 返回 0 1 之间的随机数round(x) 把一个数四舍五入为最接近的整数sin(x) 返回数的正弦sqrt(x) 返回数的平方根tan(x) 返回一个角的正切function pw(form)var one=form.one.value;var two=form.two.value;var pw=Math.pow(one,two)alert(pw)String 对象创建 String 对象var MyString=”hello”; /
19、所有字符串存储在 String 对象,将字符串对象分配给变量var MyString=new String(string); 该方法使用关键字 new 返回一个使用可选参数“string”字符串初始化的 String 对象的实例 MyString,用于后续的字符串操作。String 对象属性字符串的长度 length 作为 String 对象的唯一属性,且为只读属性,它返回目标字符串(包含字符串里面的空格)所包含的字符数。String 对象中的最后一个字符的索引为 length-1。String 对象方法方法 描述charAt(index) 返回字符串 index 处的字符acos(x) 返回
20、数的反余弦值lastIndexOf(searchValue,fromIndex)从字符串的尾部向前搜索 searchValuesubstring(index A,index B)获取从 indexA 到 indexB 的子串toLowerCse() 将字符串中所有字符转换成大写toUpperCase() 将字符串中所有字符转换成小写Array数组是一组包含有序序列数据的集合,在 JavaScript 脚本语言中实际指 Array 对象。数组可用构造函数 Array( )产生,主要有三种构造方法: Var MyArray=new Array(); var MyArray =new Array(4
21、); var MyArray =new Array(arg1,arg2,.,argN);var MyArray =arg1,arg2,.,argN;数组的大小不是固定的,可以随时增加和删除数组的元素。法 1,改变数组的 length 属性var a= 1,2,3,4,5;a.length = 4;document.write(a);法 2,push(),pop 方法,这两方法把数组看做如同堆栈类型的数据结构var a = ;a.push(1,2,3); /a1,2,3a.push(4,5); /a1,2,3,4,5a.pop(); /a1,2,3,4法 3,unshift(),shift()方
22、法,这也是堆栈方法,作用于数组的头部var a = ;a.unshift(1,2,3); /a1,2,3a.unshift(4,5); /a4,5,1,2,3a.shift(); /a5,1,2,3法 4,splice() 使用 splice()方法添加和删除数组元素 Array 对象的 splice()方法提供一种在数组任意位置添加、删除数组元素的方法。语法如下: MyArray.splice(start,delete,arg3,argN); 参数说明如下: 当参数 delete 为 0 时,不执行任何删除操作; 当参数 delete 非 0 时,在调用此方法的数组中删除下标从 start
23、到 shart+delete 的数组元素,其后的数组元素的下标均减小 delete; 如果在参数 delete 之后还有参数,在执行删除操作之后,这些参数将作为新元素添加到数组中由 start 指定的开始位置,原数组该位置之后的元素往后顺移。var a = 1,2,3,4,5,6;var b = a.splice(2,2); /b3,4 a1,2,5,6var a = 1,2,3,4,5,6;var b = a.splice(2,2,7,8,9); / b3,4 a1,2,7,8,9,5,6 数组的高级操作1. 把数组转换为字符串var a = 1,2,3,4,5;var a = a.join
24、(“-“); /a:1-2-3-4-52. 转换排序var a = 1,2,3,4,5;var a = a.reverse(); /a5,4,3,2,13. 数组排序var a = 3,2,5,1,4;var b = a.sort(); /b1,2,3,4,5如果设置 var b = a.sort(function(x,y) return x-y;);则 b1,2,3,4,5如果设置 var b = a.sort(function(x,y) return y-x;);则 b5,4,3,2,14. 连接数组var a = 1,2,3,4,5;var b = a.concat(4,5) /b1,2
25、,3,4,5,4,5第 5 章 文档对象模型(DOM)文档对象模型(Document Object Model:DOM) ,它表示访问和操作文档(如HTML,XML 文档)的 API(应用程序接口) 。JS 脚本中包含的对象可以分为三种类型:用户对象:用户根据 JS 语法规则自定义的对象内置对象:与数据类型相关的核心对象(String、Array 、 Math、Date 等数据类型)浏览器对象(window、location、history、navigator 等)文档对象(document、images、form 等)JavaScript 使用两种主要的对象模型:浏览器对象模型(BOM)和文
26、档对象模型(DOM ) ,前者提供了访问浏览器各个功能部件,如浏览器窗口本身、浏览历史等的操作方法;利用该模型中的对象的属性和方法可以控制浏览器窗口及其内部包含对象的显示属性和呈现效果。后者则提供了访问浏览器窗口内容,如文档、图片等各种 HTML 元素以及这些元素包含的文本的操作方法。DOM 比作树形结构模型,树形结构模型遵循人类家族的谱系进行标记,表示对象对象成员之间的关系。使用 parent (父)表示上一级元素,child (子)表示下一级元素,sibling(兄弟)表示同级相邻元素。节点,文档中的元素以及每个元素包含的文本信息。这些节点,可以拥有不同的节点类型,每个节点的对象都有 no
27、deType 属性。DOM 定义的 HTML 文档节点类型节点类型 数值 nodeName返回值nodeValue返回值附加说明 实例Element 1 元素名称 null 表示元素 Attribute 2 属性名称 属性值 表示属性 color=“red“Text 3 #text 节点内容 表示元素或属性中的文本内容Hello World!Comment 8 #comment 注释文本 表示注释 Document 9 #documtn null HTML 文档根元素 DocumentType10 Doctype 名称 null 文档类型 具体来讲, DOM 节点树中的节点有元素节点、文本节点
28、和属性节点等三种不同的类型,下面具体介绍。 1元素节点(element node ) 在 HTML 文档中,各 HTML 元素如、 、等构成文档结构模型的一个元素对象。在节点树中,每个元素对象又构成了一个节点。元素可以包含其它的元素,例如在下面的“购物清单”代码中: Beans Cheese Milk 所有的列表项元素都包含在无序清单元素 内部。其中节点树中元素是节点树的根节点。 2文本节点(text node) 在节点树中,元素节点构成树的枝条,而文本则构成树的叶子。如果一份文档完全由空白元素构成,它将只有一个框架,本身并不包含什么内容。没有内容的文档是没有价值的,而绝大多数内容由文本提供。
29、在下面语句中: Welcome to DOM World! 包含“Welcome to” 、 “DOM” 、 “World!”三个文本节点。在 HTML 中,文本节点总是包含在元素节点的内部,但并非所有的元素节点都包含或直接包含文本节点,如“购物清单”中,元素节点并不包含任何文本节点,而是包含着另外的元素节点,后者包含着文本节点,所以说,有的元素节点只是间接包含文本节点。 3属性节点(attribute node) HTML 文档中的元素或多或少都有一些属性,便于准确、具体地描述相应的元素,便于进行进一步的操作,例如: Welcome to DOM World! 这里 class=“Sampl
30、e“、id=“purchases“ 都属于属性节点。因为所有的属性都是放在元素标签里,所以属性节点总是包含在元素节点中。 注意:并非所有的元素都包含属性,但所有的属性都被包含在元素里在 DOM 模型中,文档对象有许多初始属性节点属性 附加说明 nodeName 返回当前节点名字 nodeValue 返回当前节点的值,仅对文本节点 nodeType 返回与节点类型相对应的值,如表 5.8 parentNode 引用当前节点的父节点,如果存在的话 childNodes 访问当前节点的子节点集合,如果存在的话 firstChild 对标记的子节点集合中第一个节点的引用,如果存在的话 lastChil
31、d 对标记的子节点集合中最后一个节点的引用,如果存在的话 previousSibling 对同属一个父节点的前一个兄弟节点的引用 nextSibling 对同属一个父节点的下一个兄弟节点的引用 attributes 返回当前节点(标记)属性的列表 ownerDocument 指向包含节点(标记)的 HTML document 对象 注意:firstchild 和 lastchild 指向当前标记的子节点集合内的第一个和最后一个子节点,但是多数情况下使用 childNodes 集合,用循环遍历子节点。如果没有子节点,则 childNodes 长度为0。 例如如下 HTML 语句: Welcome
32、 to DOM World! First Page! Welcome to DOM World! 运行上述代码,null 指某个节点没有对应的属性。节点基本操作获取节点1.getElementById( )方法 该方法返回与指定 id 属性值的元素节点相对应的对象,对应着文档里一个特定的元素节点(元素对象) 。该方法是与 document 对象相关联的函数,其语法如下: document.getElementById(id) 其中 id 为要定位的对象 id 属性值。 First Page! Beans Cheese Milk 一般来说,我们不必为 HTML 文档中的每一个元素对象都定义一个独
33、一无二的 id 属性值,也可通过下面的 getElementByTagName( )方法准确定位文档中特定的元素。 注意: 1、JavaScript 对大小写敏感, getElementById 写成 GetElementById 、getelementById 等都不对。 2、typeof 返回数据的类型 ,如数值、对象、字符串等。 2. getElementByTagName( )方法 该方法返回文档里指定标签 tag 的元素对象数组,与上述的 getElementById( )方法返回对象不同,且返回的对象数组中每个元素分别对应文档里一个特定的元素节点(元素对象) 。其语法如下: doc
34、ument. getElementByTagName(tag) 其中 tag 为指定的标签。该方法返回的是对象数组,而不是对象。 var items=document.getElementByTagName(“li“); for(var i=0;i之间的语句,可以看出该方法返回对象(object)数组,长度为 3。再看下面的代码: var shoplist=document.getElementById(“purchases“); var items=shoplist.getElementByTagName(“*“) var i=items.length; 以上语句运行后,items 数组将只
35、包含 id 属性值为 purchases 的无序清单里的元素,i返回 3,与列表项元素个数相同。 3 getAttribute( )方法 该方法返回目标对象指定属性名称的某个属性值。语法如下: object.getAttribute(attribute) 其中 attribute 为对象指定要搜索的属性,下面的代码演示其使用方法: /源程序 5.8 Sample Page! This is the first Sample! 上述代码通过 objSample.length 控制循环,遍历整个文档的 标记。运行结果显示为“First Sample”。4 setAttribute( )方法 该方法
36、可以修改任意元素节点指定属性名称的某个属性值,语法如下: object.setAttribute(attribute,value) 类似于 getAttribute( )方法, setAttribute( )方法也只能通过元素节点对象调用,传递两个参数: attribute:指定目标节点要修改的属性 value:属性修改的目标值 下面的代码演示其功能: /源程序 5.9 Sample Page! Beans Cheese Milk 运行结果显示 null 和 New List,因为 id 属性值为 purchases 的 ul 元素节点的 title 属性在shoplist.setAttrib
37、ute(“title“,“New List“)代码运行之前根本不存在,所以显示 null;运行后,修改 title 属性为 “New List”。这意味着至少完成了两个步骤: (1)创建 ul 元素节点的 title 属性; (2)设置刚创建的 title 属性值; 当然,如果 title 属性值本来就存在,运行 shoplist.setAttribute(“title“,“New List“)后,title原来的属性值被“New List”覆盖。5. removeAttribute( )方法 该方法可以删除任意元素节点指定的属性,语法如下: object.removeAttribute(na
38、me) 类似于 getAttribute( )和 setAttribute( )方法,removeAttribute( )方法也只能通过元素节点对象调用。其中 name 标示要删除的属性名称,例如: /源程序 5.10 Sample Page! 节点处理方法 由于文本节点具有易于操纵、对象明确等特点,DOM Level 1 提供了非常丰富的节点处理方法 操作类型 方法原型 附加说明 createElement(tagName) 创建由 tagName 指定类型的标记 CreateTextNode(string) 创建包含字符创 string 的文本节点 createAttribute(name
39、) 针对节点创建由 name 指定的属性,不常用生成节点 createComment(string) 创建由字符串 string 指定的文本注释 appendChild(newChild) 添加子节点 newChild 到目标节点上 插入和 添加节点 insertBefore(newChild,targetChild) 将新节点 newChild 插入目标节点 targetChild 之前复制点 cloneNode(bool) 复制节点自身,由逻辑量 bool 确定是否复制子节点removeChild(childName) 删除由 childName 指定的节点 删除和替换节点 replace
40、Child(newChild,oldChild) 用新节点 newChild 替换旧节点 oldChild insertData(offset,string) 从由 offset 指定的位置插入 string 值 appendData(string) 将 string 值插入到文本节点的末尾处 deleteData(offset,count) 从由 offset 指定的位置删除 count 个字符 replaceData(offset,count,string) 从由 offset 指定的位置用 string 代替 count 个字符 splitText(offset) 从由 offset 指
41、定的位置将文本节点分成两个文本节点,左边更新为原始节点,右边的返回到新节点文本节点操作 substringData(offset,count) 返回从 offset 指定的位置开始的 count 个字符生成节点var e = documentcreateElement(“element”);e 表示一变量,用来新建元素的引用指针地址window.onload = function() var p = document.createElement(“p”);document.body.appendChild(p);插入节点法 1:把新创建的节点插入到文档的节点树最简单的方法就是让它成为该文档某个
42、现有节点的子节点,appendChild(newChild)作为要添加子节点的节点的方法被调用,将一个标识为newChild 的节点添加到它的子节点的末尾。语法如下: object.appendChild(newChild)window.onload = function() var p = document.createElement(“p”);var h1= document.createElement(“h1”);var txt= document.createTextNode(“Hello World”);p.appendChild(txt);h1.appendChild(p);doc
43、ument.body.appendChild(h1);法 2:insertBefore(newChild,targetChild)方法将文档中一个新节点 newChild 插入到原始节点targetChild 前面,语法如下: parentElement.insertBefore(newChild,targetChild) 调用此方法之前,要明白三点: z 要插入的新节点 newChild z 目标节点 targetChild z 这两个节点的父节点 parentElement 其中,parentElement=targetChild.parentNode,且父节点必须是元素节点。以下面的语句
44、为例: Welcome to DOM World! 其表示的节点树如图 5.8 所示。下面的代码演示如何在文本节点“Welcome to”之前添加一个同父文本节点“NUDT YSQ”:复制节点var o = node.cloneNode(deep);有时候并不需要生成或插入新的节点,而只是复制就可以达到既定的目标。DOM 提供cloneNode( )方法来复制特定的节点,语法如下: clonedNode=targetNode.cloneNode(bool) 其中参数 bool 为逻辑量: bool=1 或 true:表示复制节点自身的同时复制节点所有的子节点; bool=0 或 false:表
45、示仅仅复制节点自身。删除和替换节点 可以在节点树中生成、添加、复制一个节点,当然也可以删除节点树中特定的节点。DOM 提供 removeChild()方法来进行删除操作,语法如下: removeNode=object.removeChild(name) 参数 name 指明要删除的节点名称,该方法返回所删除的节点对象。第 6 章 浏览器对象模型(BOM)Window 对象属性frames:Window 对象数组,表示窗口中的各个框架self:当前窗口parent:某个窗口的父窗口top:最顶层的浏览器窗口name:窗口名称opener:当前窗口 Window 对象的引用defaultStatu
46、s:默认的状态栏信息status:当前的状态栏信息方法alert:警告对话框confirm:确认对话框prompt:提示对话框open(url,name,features,replace)setTimeout(expression,milliseconds),延时执行操作,参 1 表示函数名,参 2 表示延时时间clearTimeout(timerId),取消延时设置,timerId 是调用 setTimeout 方法的返回值setInterval(expression,milliseconds):定时执行操作,参 1 表示函数名,参 2 表示时间间隔clearInterval(timerId
47、):Navigator 对象appCodeName:浏览器的代码名,IE 和 Navigator 都返回。appName:浏览器名称appVersion:浏览器版本号platform:浏览器操作平台userAgent:包含 appName、 appVersion 信息Location 对象属性protocol:协议hostname:主机名port:端口host:主机名和端口pathname:路径名称hash:返回“#”以及后面的内容,如 #top,指定文档中锚记的名称search:返回“ ?”以及以后的内容href:完整 URL方法location.replace(url) /装载一个新文档l
48、ocation.reload() /刷新当前文档History 对象history.back():后退history.forward():前进history.go():指定一个地址history.go(-1) = history.back();history.go(1) = history.forward();history.go(0) = 刷新页面Screen 对象属性height:屏幕高度availHeight:不包括任务栏的高度width:屏幕宽度availWidth:可用宽度colorDepth:当前颜色设置所用位数-1Document 对象常用属性bgColor:背景颜色fgColo
49、r:文本颜色title:标题URL:URLforms:表单集合,form 对象数组images:图像集合,image 对象数组links:链接anchors:锚点方法:wirite,writeln第 7 章 JQuery为了简化 JavaScript 的开发,一些 JavaScript 库诞生。JavaScript 库封装了很多预定义的对象和实用函数。jQuery 是继 Prototype 之后又一个优秀的 JavaScript 框架, 由 John Resig 于 2006 年初创建,目前最新版本为 1.5, 官方地址为: http:/ 中文地址为 http:/ 在使用 jQuery 之前,你需要下载 jQuery 技术框架文件,并引入到页面中。jQuery 框架文件是一个 js 文件,大小约为几十 KB。导入 jQuery 框架文件方法如下: 例如,构建一个简单的文档结构,代码如下所示(请不