一、概述

DOM(文档对象模型)是针对HTML和XML文档的一个API,其脱胎于DHTML。

DOM可以将任意HTML和XML文档描绘成一个由多层节点构成的结构。

每一个文档包含一个根节点-文档节点,每一个文档节点包含一个子节点-文档元素。

二、Node类型

DOM1定义了一个Node接口,其由所有节点的类型实现;在javascript中Node接口由Node类型实现(除IE)

Javascript中的所有节点都继承Node类型,所以都共享一些基本的属性和方法。

1、nodeType:节点类型

数值(1-12)

Node.ELEMENT_NODE()//元素节点

Node.TEXT_NODE()//文本节点

Node.DOCUMENT_NODE()//文档节点

......

2、nodeName和nodeValue:

对于元素节点name是元素的标签名,value永远是null;

对于文本节点name是"#text",value是文本内容;

3、parentNode和childNodes:

父节点和子节点,子节点childNodes中保存着nodeList对象(类数组对象);

//将nodelist对象复制成一个数组(实时的快照)
var convertToArray = function(nodes){
var arr = null;
try{
arr = Array.prototype.slice.call(nodes,);
}
catch(ex){
//兼容IE8或更早版本(其nodelist实现为一个com对象,故不能用js方法)
var len = nodes.length;
arr = [];
while(len){
arr.push(nodes[--len]);
}
arr.reverse();
}
return arr;
}

4、previousSibling、nextSibling、fristChild和lastChild:

5、ownerDocument:

其指向表示整个文档的文档节点。

三、操作节点

1、appendChild():

用于向childNodes列表尾端添加一个节点,并返回新增的节点;(如果添加的节点已经是文档中的一个节点,那其只是移动下位置)

2、insertBefore():

接受两个参数:第一个是要插入的节点,第二个是参照节点(将节点查到参照节点之前),如果参照节点是null,则跟appendChild()一样;

3、replaceChild():

接受两个参数:第一个要插入的节点,第二个是要替换的节点;返回要替换的节点;

4、removeChild():

接受一个参数:要移除的节点;返回要移除的节点;

(被替换或被移除的节点仍然为文档所有,只不过在文档中没了位置!怎么彻底去除节点?)

5、cloneNode():

接受一个参数:true或false,表示进行深复制还是浅复制,深复制就是复制节点及其整个子节点树,浅复制只复制其节点本身;

(复制只复制特性不负责属性,如事件处理程序;但IE有个bug,会复制事件处理程序)

6、normalize():

处理文档中的文本节点;在后代节点中查找,空文本节点删除,相邻的文本节点合并;

Dom学习笔记-(一)的更多相关文章

  1. Dom学习笔记

    今天老师出了一道面试题目:取到表单里面的textbox的值,两种方法.知道一种,老师说的什么dom,我竟然不知道. 以前学html的时候,老师也重来没有提到dom的概念.javaScript只是学了一 ...

  2. JS DOM学习笔记

    1.window对象代表当前浏览器窗口 2.使用window对象的属性.方法的时候可以省略window.例如:window.alert("hello")一般写成alert(&quo ...

  3. BOM、DOM学习笔记——JavaScript

    1.BOM的概述    browser object modal :浏览器对象模型.    浏览器对象:window对象.    Window 对象会在 <body> 或 <fram ...

  4. DOM学习笔记--入门1

    HTML DOM 是关于如何获取.修改.添加或删除 HTML 元素的标准. 首先节点有很多种,不仅仅HTML元素是节点,尤其 要注意文本节点的存在. 根据 W3C 的 HTML DOM 标准,HTML ...

  5. HTML DOM 学习笔记

    一.HTML DOM定义了所有HTML元素的对象和属性,以及访问他们的方法即:HTML DOM是关于如何获取,修改,添加,删除HTML元素的标准二.DOM节点1.分类整个文档是一个文档节点每个HTML ...

  6. DOM学习笔记(三)DOM元素的访问、修改与事件

    访问 HTML 元素等同于访问节点,使用的是document对象下的数个getElement方法,然后再对返回的元素(或元素列表)进行具体内容的访问和修改,或者响应对应的事件是操作 一些 DOM 对象 ...

  7. DOM学习笔记(二)对象方法与属性

    所有 HTML 元素被定义为对象,而编程接口(对象的访问)则是对象方法和对象属性. 事实上,常用的只用window对象及其子对象document对象,以及事件Event对象. Window 对象 Wi ...

  8. DOM学习笔记(一)DOM树

    DOM 定义了访问和操作 HTML 文档的标准方法. HTML 文档中的所有内容都是节点,将 HTML 文档表达为树结构,称为节点树 HTML DOM 树 HTML DOM 是关于如何获取.修改.添加 ...

  9. DOM学习笔记(思维导图)

    导图

随机推荐

  1. 关于ProgressBar的美化问题

    Android自带的ProgressBar其实也算不上丑陋,但是如果所有的App都使用一个模式的ProgressBar,那么估计用户就要崩溃了,打开任何一个App,擦,进度条都一模一样..有鉴于此,我 ...

  2. forEach、map、 for-in 、 for 、some 对比 break

    map.forEach 乱用 ,被嫌弃,现整理区别 补补基础 Array 迭代方法 1. every(): 对数组中的每一项运行给定函数,如果该函数对每一项都返回true ,则返回true. 2. f ...

  3. 获取随机颜色js

    获取随机颜色方法一: function randomColor1() { var rand = Math.floor(Math.random() * 0xFFFFFF).toString(16); i ...

  4. (转)CSS字体大小: em与px、pt、百分比之间的对比

    CSS样式最混乱的一个方面是应用程序中文本扩展的font-size属性.在CSS中,你可以用四个不同的单位度量来显示在web浏览器中的文本 大小.这四个单位哪一种最适合Web? 这个问题引起了广泛的争 ...

  5. java Spring 在WEB应用中的实例化

    .前面讲解的都是通过直接读取配置文件,进行的实例化ApplicationContext AbstractApplicationContext app = new ClassPathXmlApplica ...

  6. 使用DOM4J解析XMl文件与读取XML文件

    XML文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id ...

  7. 开源控件ViewPagerIndicator学习

    导航条指示器.ViewPagerIndicator 地址 https://github.com/JakeWharton/ViewPagerIndicator Style是重用控件的一种技术.类似CSS ...

  8. mysql的分区技术(建立分区)

    -- mysql建立表分区,使用range方法建立: create table t_range( id int(11), money int(11) unsigned not null, date d ...

  9. iOS开发——TTS文本发音

    iOS的文本转发音,从iOS7开始,iOS系统自带这个功能.能够实现中文.英文的发音.而且实现的起来非常方便.就像我看到有的博主说的三行代码搞定. (在iOS7之前(目前已不适配了),比如iOS6实现 ...

  10. 摘录android工具类

    import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.Pac ...