1.对象
对象是自包含的数据集合,包含在对象里的数据可以通过两种形式进行访问----属性(property)和方法(method)。
- JavaScript语言里的对象可以分为三种类型。
- 用户定义对象(user-defined object):由程序员自行创建的对象。本书不讨论这种对象。
- 内建对象(native object):内建在JavaScript语言里的对象,如Array、Math和Date等。
- 宿主对象(host object):由浏览器提供的对象。
属性:隶属于某个特定对象的变量–object.property
方法:只有某个特定对象才能调用的方法–object.method()
2.获取元素
- 一份文档就是一棵节点树。
- 节点分为不同的类型:元素节点、属性节点和文本节点等。
- getElenentById将返回一个对象,该对象对应着文档里的一个特定的元素节点。
- getElementsByTagName和getElementByclassName将返回一个对象数组,它们分别对应着文档里的一组特定的元素节点。
- 每个节点都是一个对象。
3.获取和设置属性
通过getElenentById、getElementsByTagName和getElementByclassName来获取元素,之后通过getAttribute方法获取元素的各个属性,通过setAttribute方法更改各个属性的值。
- object.getAttribute(attribute) :getAttribute方法不属于document对象,所以不能通过document对象调用,只能通过元素节点对象调用。
- object.setAttribute(attribute,value)
- setAttribute做出的修改不会反映在文档本身的源代码里
4.事件处理函数
事件处理函数的作用是,在特定事件发生时调用特定的JavaScript代码。
添加事件处理函数语法:
- event=“Javascript stament(s)”
5. childNodes属性
childNodes属性返回的数组包含所有类型的节点,不仅仅是元素节点、文本节点、属性节点,甚至包括空格、换行符等等。
6.nodeType 属性
nodeType 属性:node.nodeType
nodeType属性总共有12种可取值,但其中仅有3种具有实用价值。
- 元素节点的nodeType属性值是1。
- 属性节点的nodeType属性值是2。
- 文本节点的nodeType属性值是3。
7.平稳退化
所谓平稳退化指的是,当用户使用不支持JavaScript的浏览器或者禁用JavaScript的情况下,如果正确使用JavaScript脚本,虽然某些功能无法使用,但是依然能够完成基本操作。
“JavaScript:”伪协议和内嵌事件处理函数,都不能做到平稳退化
JavaScript:伪协议----<a herf="javascript:popUp('http://www.baidu.com/');" >百度</a>
内嵌处理函数:----<a herf='#' onclick="http://www.baidu.com/');return false;">百度</a>
解决方案:----<a href="http://www.baidu.com/" onclick="popUp(this.getAttribute("href));return false;" >Baidu</a>
8.分离JavaScript
语法结构:element.event = action…
具体步骤:
- 1.把文档的所有链接全部放到一个数组中
- 2.遍历数组
- 3.如果某个链接的class属性等于popup,就表示点击这个链接时应该调用popUp()函数
- 3.a 把链接的href属性传递给popUp()函数
- 3.b 取消链接的默认行为,不让链接把访问者带离当前窗口
var links=document.getElementsByTagName('a');