一 . 节点属性

DOM 是树型结构,相应的,可以通过一些节点属性来遍历节点树:

方法 说明
nodeName 节点名称,相当于tagName.属性节点返回属性名,文本节点返回#text。nodeName,是只读的。
nodeType 节点的类型,返回值:1,元素节点;2,属性节点;3,文本节点。nodeType 是只读的。
nodeValue 节点的值,返回一个字符串,指示这个节点的值。元素节点返回 null,属性节点返回属性值,文本节点返回文本。nodeValue 可读可写,这是对元素节点不能写。一般只用于设置文本节点的值。
childNodes 返回子节点数组。文本和属性节点的 childNodes 永远是 null。可以用 hasChildNodes 来判断是否有子节点。只读属性。
firstChild 返回第一个子节点。文本和属性节点没有子节点,会返回一个空数组。对于元素节点,若是没有子节点会返回 null。有一个等价式:firstChild = childNodes[0]。
lastChild 返回最后一个子节点。返回值同 firstChild,,三方待遇参考上面。有一个等价式:lastChide = childNodes[childNodes.length - 1]。
nextSibling 返回节点的下一个兄弟节点。如果没有下一个兄弟节点的话,返回 null。只读属性。
previousSibling 返回节点的上一个兄弟节点。同上。
parentNode 返回节点的父节点。document.parentNode 返回 null,其他的情况下都将返回一个元素节点,因为只有元素节点拥有子节点,出了 document 外任何节点都拥有父节点。只读属性。

二. 节点方法

还记得下面这些我们用过的方法么,他们都是 DOM 的方法:

方法 说明
write() 写入内容到文档
getElementById() 返回带有指定 ID 的元素
getElementsByTagName() 返回带有指定标签名的所有元素
getElementsByClassName() 返回包含指定类名的所有元素的一个列表
get/setAttribute('key', 'value') 返回或设置属性节点。

这些方法的前面要加上 document 对象的哦~

还有一些其它的 DOM 操作控制的方法:

方法 说明
createElement('tagName') 创建节点。
createTextNode('text'); 创建文本节点。
appendChild(o) 在父节点末尾附加子节点 ,其中 o 为节点对象。
createDocumentFragment() 创建文档片断。
removeChild(oP) 删除节点。
replaceChild(newOp, targetOp) 替换节点。
insertBefore(newOp, targetOp) 已有的子节点前插入一个新的子节点。
insertAfter(newOp, targetOp) 已有的子节点之后插入一个新的子节点。
get/setAttribute('key', 'value') 设置或得到属性节点。
cloneNode(true/false) 复制节点。

这些方法的使用主体不只是 document,更多的是各个节点元素。

在文档对象模型(DOM)中,每个节点都是一个对象。DOM 节点有三个重要的属性 :

属性 说明
nodeName 节点名称,相当于 tagName 属性节点返回属性名,文本节点返回 #text。nodeName,是只读的。
nodeType 节点的类型,返回值:1,元素节点;2,属性节点;3,文本节点。nodeType 是只读的。
nodeValue 节点的值,返回一个字符串,指示这个节点的值。元素节点返回 null,属性节点返回属性值,文本节点返回文本。nodeValue 可读可写,这是对元素节点不能写。一般只用于设置文本节点的值。

节点属性介绍:

一、nodeName 属性:节点的名称,是只读的。

1. 元素节点的 nodeName 与标签名相同

2. 属性节点的 nodeName 是属性的名称

3. 文本节点的 nodeName 永远是#text

4. 文档节点的 nodeName 永远是#document

二、nodeValue 属性:节点的值

1. 元素节点的 nodeValue 是 undefined 或 null

2. 文本节点的 nodeValue 是文本自身

3. 属性节点的 nodeValue 是属性的值

三、nodeType 属性:节点的类型,是只读的。以下常用的几种结点类型:

元素类型 节点类型
元素 1
属性 2
文本 3
注释 8
文档 9

我们有两种方法替换元素的内容,一个是 innerHTML,另一个是 innerText。

innerHTML 属性用于获取或替换元素的内容,比如 <div> 标签内的所有元素。

<div><a>文本内容</a></div>

innerText 属性用于获取或替换元素的文本内容,只有文本内容,没有其它 HTML 标签。

<div><a>文本内容</a></div>

使用语法:

 
 
 
 
 
1
Object.innerHTML
2
3
Object.innerText

参数说明: Object 是获取的元素对象,如通过document.getElementById("ID")获取的元素。

style 的使用语法:

Object.style.property = new style;

参数说明:

1. Object 是获取的元素对象,如通过document.getElementById("id")获取的元素。

2. property 为 css 样式属性,比如 color,width 等等,不做过多说明。

className 属性可以设置或返回元素的 class 属性。

使用语法:

 
 
Object.className = classname;
 
 

参数说明:

1. Object 是获取的元素对象,如通过document.getElementById("id")获取的元素。

2. className 为 元素的 class 属性。

js学习--DOM操作详解大全 前奏(认识DOM)的更多相关文章

  1. js学习--DOM操作详解大全一(浏览器对象)

    一.客户端中的window对象 window对象表示当前浏览器的窗口,它是一个顶级对象,我们创建的所有对象.函数.变量都是window对象的成员. window对象自带了一些非常有用的方法.属性. w ...

  2. js学习--DOM操作详解大全二(window对象)

    一.window - 计时器 1、setTimeout()可以用来在指定的时间之后单次调用函数.setTimeount(f,1000);//一秒后调用函数fclearTimeout();取消函数的执行 ...

  3. jQuery的DOM操作详解

    DOM(Document Object Model-文档对象模型):一种与浏览器, 平台, 语言无关的规则, 使用该接口可以轻松地访问页面中所有的标准组件DOM操作的分类 核心-DOM: DOM Co ...

  4. JavaScript 的DOM操作详解

    内容概要 DOM之查找标签 基本查找 间接查找 节点操作 获取值操作 class操作 样式操作 事件 内置参数this 事件练习 内容详细 DOM操作 DOM(Document Object Mode ...

  5. javascript dom 操作详解 js加强

    js加强操作实现代码. 1 .文档里的每个节点都有属性 nodeName . nodeValue . nodeType nodeName 文本节点的的节点名是 #text , nodeName 是只读 ...

  6. JavaScript基础:DOM操作详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...

  7. Jqurey DOM 操作详解

    一.获取 1.获取内容----.text()  .html()   .value() text() - 设置或返回所选元素的文本内容                         格式:$(选择器) ...

  8. mongodb学习04 操作详解(2)

    查找文档 筛选查找 db.collection.find(); 返回一个集合中文档的子集,子集的 范围从 0 个文档到整个集合; db.collection.findOne(); 返回筛选的一个文档; ...

  9. mongodb学习03 操作详解

    插入文档 db.test.insert({"name":"jinks"}); 批量插入 db.test.insert([{}, {}, {}]); 一次批量插入 ...

随机推荐

  1. Caffe 编译

    Compilation Now that you have the prerequisites, edit your Makefile.config to change the paths for y ...

  2. (转)在Mac下使用OpenCV, 在Xcode下使用OpenCV (非常基础,详细)

    转自:http://blog.sciencenet.cn/home.php?COLLCC=3456986939&COLLCC=3456885714&mod=space&uid= ...

  3. hdu 4758 Walk Through Squares

    AC自动机+DP.想了很久都没想出来...据说是一道很模板的自动机dp...原来自动机还可以这么跑啊...我们先用两个字符串建自动机,然后就是建一个满足能够从左上角到右下角的新串,这样我们直接从自动机 ...

  4. android考试题

    一.选择题 1. Math.round(11.5)等于多少(    ). Math.round(-11.5) 等于多少(   C  ). A.11 ,-11    B.11 ,-12 C.12 ,-1 ...

  5. 【转】Android异常:that was originally added here

    ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 02-19 15:08:02.228: E/WindowManager(22172): Activity  ...

  6. Bulk Insert命令具体

    Bulk Insert命令具体 BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中. 语法: BULK INSERT [ [ 'database_name'.][ 'owner' ...

  7. 将文件的图标添加到LISTVIEW中

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. Codeforces 417E Square Table(随机算法)

    题目链接:Codeforces 417E Square Table 题目大意:给出n和m.要求给出一个矩阵,要求每一列每一行的元素的平方总和是一个平方数. 解题思路:构造.依照 a a a b a a ...

  9. 手把手教你从Core Data迁移到Realm

    来源:一缕殇流化隐半边冰霜 (@halfrost ) 链接:http://www.jianshu.com/p/d79b2b1bfa72 前言 看了这篇文章的标题,也许有些人还不知道Realm是什么,那 ...

  10. 为什么java不支持多重继承?

    什么是钻石问题?如下图所示,B和C继承于A,D继承B和C(多重继承),在D中调用A的方法时,无法判断是调用B中的实现还是C的实现,下图继承关系是个菱形,所以该问题又叫做菱形问题. 如果java要解决这 ...