1.DOM的概念:DOM是一套对文档的内容进行抽象和概念化的方法。W3c对其定义为:一种与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地对文档内容、结构、样式进行访问和修改。
2.第一次使用的变量,记住最好加上var
3.getElementById得到的结果是一个对象;getElementByTagName()得到的结果是一个数组,哪怕元素的个数只有一个;
getAttribute()、setAttribute()函数只能通过对象才可以使用,即使是document也不可以调用。
说明:setAttribute()做出的修改不会反应在文档本身的源代码里。
引申:DOM的工作模式---先加载文档的静态内容、再以动态方式对他们进行刷新,动态刷新不影响文档的静态内容。
4.文档中每一个元素节点都是一个对象
5.事件处理机制:执行完javascript函数之后,如果返回的结果为true,则事件将会被执行,如果为false,则说明没有被执行,事件也就不会发生。
6.javascript使用原则:
6.1 留有退路:如果没有留有退路,一会死用户体验降低,二是影响网页在搜索引擎上的排名
a.通过“javascript:”伪协议调用javascript代码的做法非常不好;
b.内嵌的事件处理函数,如果浏览器禁止javascript功能,那么内嵌函数的功能就无法实现。
经典的预留退路的例子:<a href="http://google.com.hk" οnclick="popUp('http://google.com.hk');return false;">
6.2 分离javascript
6.3 向后兼容:首先是进行对象检测(object dectection),使用if语句来进行检测,例如:if(!document.getElementById) return false;
7.匿名函数:是一种“临时抱佛脚”式的函数创建方法,没有名字,只能在哪定义在哪使用。
8.结构和行为的相互分离程度越大越好
9. creatElement()只能够创建元素节点,appendChild()可以把子节点附加到父节点上面,createTextNode()用于创建文本节点,insertBefore()用户在某节点之前创建节点,aa.nextSbling得到aa的下一个兄弟节点,parentNode:父节点,previousSibling:上一个节点,childNodes:字节点,firstChild:第一个子节点,lastChild:最后一个子节点,nodeType:节点类型,nodeName:节点名称。
10.javscript DOM主要用于充实文档的内容,要避免把核心内容通过DOM添加到文档中去。
11.为class属性是CSS深入DOM领域的证据。
12.使用a.style得到的是一个对象,并且只能够处理内嵌样式,同时使用a.className(+)="css",也可以修改样式。