一、概述

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. 监控mysql索引使用效率的脚本

      SELECT  t.table_schema AS db,  t.table_name   AS tab_name,  s.index_name   AS index_name,  s.colum ...

  2. 【转】Mac和iOS开发资源汇总—更新于2013-07-19

    小引 本文主要汇集一些苹果开发的资源,会经常更新,建议大家把这篇文章单独收藏(在浏览器中按command+D). 今天(2013年7月19日)收录了许多中文网站和博客.大家一定要去感受一下哦. 如果大 ...

  3. 自定义URL Scheme完全指南

    iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用. 注册自定义 URL Scheme ...

  4. C语言实现电话本 动态开辟 信息存储于文件

    下面是我用C写的一个电话本小项目,实现的功能有:添加 删除 修改 查找 排序 清空 显示,功能还是比较全的,内存也是动态开辟的.能存储于本地,能从本地读出并显示 头文件部分代码,contact.h: ...

  5. net.sf.json的jar包:JSONArray

    今天在用maven添加net.sf.json的jar包的时候,代码如下: ? 1 2 3 4 5 <dependency>     <groupId>net.sf.json-l ...

  6. jQuery多图上传Uploadify插件使用及传参详解

    因为工作需要,这两天接触到了Uploadify插件,由于是第一次用,花了我近一天的时间.下面我把我在用这个插件过程详细的分享出来,也让自己巩固一下,也希望能帮助到你. 所需文件: jquery-1.8 ...

  7. YII中文件上传

    文件上传 1.视图文件代码 <?php $form = $this->beginWidget("CActiveForm",array( "action&quo ...

  8. js广告浮动

    一个广告框在指定区域,有定位属性的父级区域内,一直向右向左移动,如果碰到左右边框,反向,如果碰到上下边距,反向,实现在指定框中浮动的效果. <!doctype html> <html ...

  9. C#获取当前路径,获取当前路径的上一层路径

    C#获取当前路径的方法如下: (1)string path1 = System.Environment.CurrentDirectory; //C:\...\bin\Debug -获取和设置当前工作目 ...

  10. ASP.NET页面生命周期总结(1)

    图解:1) 浏览器   :把用户的操作封装成一个请求通过socket发送到后台服务器. 后台服务器:首先有个内核模块Http.sys 和针对每个应用程序池都有一个请求队列.然后请求到达http.sys ...