DOM是Document Object Model文档对象模型的缩写。依据W3C DOM规范,DOM是一种与浏览器,平台,语言无关的接口,使得你能够訪问页面其它的标准组件。

Node接口的特性和方法

特性/方法 类型/放回类型 说明
nodeName String 节点的名字;依据节点的类型而定义
nodeValue String 节点的值。依据节点的类型而定义
nodeType Number 节点的类型常量值之中的一个
ownerDocument Document 指向这个节点所属的文档
firstChild Node 指向在childNodes列表中的第一个节点
lastChild Node 指向在childNodes列表中的最后一个节点
childNodes NodeList 全部子节点的列表
previousSibling Node 指向前一个兄弟节点;假设这个节点就是第一个兄弟节点。那么该值为null
nextSibling Node 指向后一个兄弟节点;假设这个节点就是最后一个兄弟节点,那么该值为null
hasChildNodes() Boolean 当childNodes包括一个或多个节点时。返回真
attributes NamedNodeMap 包括了代表一个元素的特性的Attr对象。仅用于Element节点
appendChild(node) Node 将node加入到childNodes的末尾
removeChild(node) Node 从childNodes中删除node
replaceChild (newnode, oldnode) Node 将childNodes中的oldnode替换成newnode
insertBefore (newnode, refnode) Node 在childNodes中的refnode之前插入newnode

hasChildNodes() -- 查看是否存在子节点

该方法用来检查一个元素是否有子节点,返回值是 true 或 false.

var booleanValue = element.hasChildNodes();

文本节点和属性节点不可能再包括不论什么子节点,所以对这两类节点使用 hasChildNodes 方法的返回值永远是 false.

replaceChild() -- 节点替换

把一个给定父元素里的一个子节点替换为另外一个子节点

var reference = element.replaceChild(newChild,oldChild);

返回值是一个指向已被替换的那个子节点的引用指针。

假设被插入的子节点还有子节点,则那些子节点也被插入到目标节点中

getAttribute()   -- 查找属性节点

返回一个给定元素的一个给定属性节点的值

var attributeValue = element.getAttribute(attributeName);

给定属性的名字必须以字符串的形式传递给该方法。

给定属性的值将以字符串的形式返回,假设给定属性不存在,getAttribute() 将返回一个空字符串.

setAttribute() -- 设置属性节点

将给定元素节点加入一个新的属性值或改变它的现有属性的值。

 element.setAttribute(attributeName,attributeValue);

属性的名字和值必须以字符串的形式传递给此方法

假设这个属性已经存在。它的值将被刷新;

假设不存在,setAttribute()方法将先创建它再为其赋值。

createElement() -- 创建新元素节点

依照给定的标签名创建一个新的元素节点。

方法仅仅有一个參数:将被创建的元素的名字。是一个字符串.

var reference = document.createElement(element);

方法的返回值:是一个指向新建节点的引用指针。返回值是一个元素节点。所以它的 nodeType 属性值等于 1。

新元素节点不会自己主动加入到文档里,新节点没有 nodeParent 属性。它仅仅是一个存在于 JavaScript 上下文的对象.

var pElement = document.createElement("p");

createTextNode() -- 创建新文本节点

创建一个包括着给定文本的新文本节点。

这种方法的返回值是一个指向新建文本节点引用指针。

var textNode = document.createTextNode(text);

方法仅仅有一个參数:新建文本节点所包括的文本字符串

方法的返回值:是一个指向新建节点的引用指针。它是一个文本节点,所以它的 nodeType 属性等于 3.

新元素节点不会自己主动加入到文档里,新节点没有 nodeParent 属性

var pElementText=document.createElement("li");
var textElement=document.createTextNode("南京");
pElementText.appendChild(textElement);

appendChild() -- 插入节点(1)

为给定元素添加一个子节点:                                   

   var newreference = element.appendChild(newChild).              

   给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点。

方法的返回值是一个指向新增子节点的引用指针。

该方法通常与 createElement() createTextNode() 配合使用

新节点能够被追加给文档中的不论什么一个元素

 var newliElement=document.createElement("li");
var textNode=document.createTextNode("北京");
newliElement.appendChild(textNode);
document.body.appendChild(newliElement); var liElement=document.getElementsByTagName("li");
var textValue=liElement[0].firstChild.nodeValue;
alert(textValue);

insertBefore() -- 插入节点(2)

把一个给定节点插入到一个给定元素节点的给定子节点的前面

var reference =  element.insertBefore(newNode,targetNode);

节点 newNode 将被插入到元素节点 element 中并出如今节点 targetNode 的前面.

节点 targetNode 必须是 element 元素的一个子节点。

该方法通常与 createElement() 和 createTextNode() 配合使用

<ul id="city">     <li value="beijing^" id="beijing">北京</li>        </ul>
<ul id="city01"> <li value="shanghai^" id="shanghai">上海</li> </ul>
//获取父节点
var parentCityNode=document.getElementById("city");
//获取子节点
var beijingNode=document.getElementById("beijing");
var shanghaiNode=document.getElementById("shanghai");
//插入
parentCityNode.insertBefore(shanghaiNode,beijingNode);

removeChild() -- 删除子节点

从一个给定元素里删除一个子节点

var reference = element.removeChild(node);

返回值是一个指向已被删除的子节点的引用指针。

某个节点被removeChild()方法删除时,这个节点所包括的全部子节点将同一时候被删除。

<ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>
var ulElement=document.getElementById("city");
var liElement=document.getElementById("beijing");
ulElement.removeChild(liElement);

假设想删除某个节点,但不知道它的父节点是哪一个。parentNode 属性能够帮忙。

<ul id="city">  <li value="beijing^" id="beijing">北京</li> </ul>
var liElement=document.getElementById("beijing");
var parentElement=liElement.parentNode;
parentElement.removeChild(liElement);

ChildNodes -- 遍历节点树

ChildNodes:返回一个数组,这个数组由给定元素节点的子节点构成:

var nodeList = node.childNodes;

文本节点和属性节点都不可能再包括不论什么子节点,所以它们的 ChildNodes 属性永远会返回一个空数组。

假设想知道某个元素有没有子节点,能够用 hasChildNodes 方法。

假设想知道某个元素有多少个子节点。能够用 childNodes 数组的 length 属性。

childNodes 属性是一个仅仅读属性。

firstChild -- 获取第一个子节点

firstChild:该属性返回一个给定元素节点的第一个子节点,返回这个节点对象的指针。

var reference = node.firstChild;

文本节点和属性节点都不可能包括不论什么子节点,所以它们的 firstChild 属性永远会返回 null。

某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点,即:

var reference = node.ChildNodes[0];

firstChild 属性是一个仅仅读属性。

lastChild:获取最后一个子节点。

nextSibling: 返回一个给定节点的下一个兄弟节点。

previousSibling:返回一个给定节点的上一个兄弟节点。

parentNode:返回一个给定节点的父节点。

parentNode 属性返回的节点永远是一个元素节点,由于仅仅有元素节点才有可能包括子节点。

document 节点的没有父节点。

Document 对象的集合

集合 描写叙述
all[] 提供对文档中全部 HTML 元素的訪问。

anchors[] 返回对文档中全部 Anchor 对象的引用。
applets 返回对文档中全部 Applet 对象的引用。

forms[] 返回对文档中全部 Form 对象引用。

images[] 返回对文档中全部 Image 对象引用。

links[] 返回对文档中全部 Area 和 Link 对象引用。

Document 对象的属性

属性 描写叙述
body 提供对 <body> 元素的直接訪问。

对于定义了框架集的文档,该属性引用最外层的 <frameset>。

cookie 设置或返回与当前文档有关的全部 cookie。
domain 返回当前文档的域名。
lastModified 返回文档被最后改动的日期和时间。
referrer 返回加载当前文档的文档的 URL。
title 返回当前文档的标题。
URL 返回当前文档的 URL。

Document 对象的方法

方法 描写叙述
close() 关闭用 document.open() 方法打开的输出流,并显示选定的数据。
getElementById() 返回对拥有指定 id 的第一个对象的引用。

getElementsByName() 返回带有指定名称的对象集合。

getElementsByTagName() 返回带有指定标签名的对象集合。
open() 打开一个流,以收集来自不论什么 document.write() 或 document.writeln() 方法的输出。
write() 向文档写 HTML 表达式 或 JavaScript 代码。

writeln() 等同于 write() 方法,不同的是在每一个表达式之后写一个换行符。

javaScript DOM编程经常使用的方法与属性的更多相关文章

  1. 读书笔记:JavaScript DOM 编程艺术(第二版)

    读完还是能学到很多的基础知识,这里记录下,方便回顾与及时查阅. 内容也有自己的一些补充. JavaScript DOM 编程艺术(第二版) 1.JavaScript简史 JavaScript由Nets ...

  2. JavaScript DOM 编程艺术·setInterval与setTimeout的动画实现解析

    先贴上moveElement()函数的大纲,为了方便观看,删了部分代码,完整版粘到文章后面. function moveElement(elementID,final_x,final_y,interv ...

  3. JavaScript DOM 编程艺术(第2版)读书笔记(1)

    JavaScript 简史 JavaScript 是Netscape公司与Sun公司合作开发的.在 JavaScript 1.0发布时,Netscape Navigator主宰着浏览器市场.微软在推出 ...

  4. JavaScript DOM编程艺术学习笔记(一)

    嗯,经过了一周的时间,今天终于将<JavaScript DOM编程艺术(第2版)>这本书看完了,感觉受益匪浅,我和作者及出版社等等都不认识,无意为他们做广告,不过本书确实值得一看,也值得推 ...

  5. JavaScript DOM编程艺术第一章:JavaScript简史

    本系列的博客是由本人在阅读<JavaScript DOM编程艺术>一书过程中做的总结.前面的偏理论部分都是书中原话,觉得有必要记录下来,方便自己翻阅,也希望能为读到本博客的人提供一些帮助, ...

  6. 《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数

    刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 ...

  7. JavaScript DOM编程艺术读后感(1)—— 平稳退化

    最近,在读<JavaScript DOM编程艺术(第二版)>这本书,想着将自己的读后感记录下来,作为记忆吧. 其实我并不是最近才刚开始读这本书的,我读了有一段时间了.我是一名web前端开发 ...

  8. Java web JavaScript DOM 编程

     JavaScript DOM 编程 (1).DOM概述及分类 (2).DOM结构模型:XML DOM 和 HTML DOM 关系? (3).结点,结点树,结点属性与方法? 1.DOM是什么? d ...

  9. javascript Dom 编程

     javascript Dom  编程 知识概要: (1)Dom是什么? (2)Dom结构模型 (3)XML DOM和 HTML DOM (4)NODE接口的特性和方法 (5)DOM结点的常用属性 ...

随机推荐

  1. 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

    P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...

  2. 解决浏览器不兼容websocket

    本例使用tomcat 7.0的websocket做为例子. 1.新建web project.2.找到tomcat 7.0 lib 下的 catalina.jar,tomcat-coyote.jar添加 ...

  3. Javascript和jquery事件-鼠标移入移出事件

    javascript使用mouseover和mouseout,只在css中支持hover jquery支持mouseover和mouseout,封装了mouseenter.mouseleave事件函数 ...

  4. POJ 2536 Gopher II (ZOJ 2536) 二分图匹配

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1882 http://poj.org/problem?id=2536 题目大 ...

  5. FTP中的授权规则

    在授权规则中,你可以管理自己的FTP站点以怎样的方式进行访问,比如每个进入站点的人都需要输入用户名密码.正则可以在授权规则中删除默认的配置“允许匿名用户读取”的规则. 也可以在此处,对不同的组或用户进 ...

  6. Oracle 中的Interger类型

    引自 wolfAone, oracle有没有integer类型,这种类型的最大值是多少啊. Integer是Number类型的子类型: NUMBER Type You use the NUMBER d ...

  7. Codeforces Round #258 (Div. 2)——B. Sort the Array

    B. Sort the Array time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  8. C++胜者树

    #include <iostream> #define MAX_VALUE 0x7fffffff using namespace std; //在这里我先反思一下.不知道怎么搞的,这个算法 ...

  9. Qt开发程序在Windows 10应用须要管理员执行的解决思路

    Qt开发程序在Windows 10应用须要管理员执行的解决思路 过了非常长的时间没有公布博客了.可是我依旧努力地开发Qt程序.眼下呢.我发现开发Qt程序在Windows 10上有一个怪现象--有些程序 ...

  10. 使用wepy开发微信小程序商城第三篇:购物车(布局篇)

    使用wepy开发微信小程序商城 第三篇:购物车(布局篇) 前两篇如下: 使用wepy开发微信小程序商城第一篇:项目初始化 使用wepy开发微信小程序商城第二篇:路由配置和页面结构 基于上两篇内容,开始 ...