Javascript DOM变成艺术学习笔记

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);
经验分享 程序员 微信小程序 职场和发展