【JavaScript】
====名词解释====
a.DOM介绍:Document Object Model(文本对象模型)
D:文档 – html 文档 或 xml 文档
O:对象 – document 对象的属性和方法
M:模型
DOM 是针对xml(html)的基于树的API。
DOM树:节点(node)的层次。
DOM 把一个文档表示为一棵家谱树(父,子,兄弟)
DOM定义了Node的接口以及许多种节点类型来表示XML节点的多个方面
b.节点介绍(Node):来源于网络理论,代表网络中的一个连接点。网络是由节点构成的集合
c.节点分为三种类型:元素节点、属性节点、文本节点
d.Node节点是接口,Api定义了很多属性和方法。
e.查找节点:只有创建了节点,才可以使用api的属性和方法
.getElementById("");
//通过id属性值查找[元素节点]对象,没有返回null
//该方法只能用于 document 对象
.getElementsByTagName_r("");
//通过标签名返回[元素节点]集合,没有返回null
//该方法不只是用于 document 对象,还可以使用于别的[元素节点]对象
.getElementsByName("");
//通过标签的name属性值查找[元素节点]对象,没有返回null
//该方法不只是用于 document 对象,还可以使用于别的[元素节点]对象
.getAttributeNode("");
//通过属性名称得到属性节点,一般都在某元素节点里去找
f.节点对象的相关的属性介绍:通过查找到的节点对象调用
.nodeName;//只读属性
//得到节点的名称
//元素节点返回的是元素的名称
//属性节点返回的是元素的
//文本节点返回的是#text字符串
.nodeType;//只读属性
//得到节点的类型
//Node.ELEMENT_NODE (1) -- 元素节点
//Node.ATTRIBUTE_NODE (2) -- 属性节点
//Node.TEXT_NODE (3) -- 文本节点
.nodue;//读/写属性
//得到节点的值
//元素节点返回null
//属性节点返回值是这个属性的值
//文本节点返回该文本
//可以为文本节点的 nodue 属性设置一个值。
g.节点对象的相关的方法介绍:通过查找到的节点对象调用
.getAttribute("");
//返回一个给定元素的一个给定属性节点的值
//给定属性的名字必须以字符串的形式传递给该方法,不能使变量
//给定属性的值将以字符串的形式返回,如果给定属性不存在,
getAttribute() 将返回一个空字符串
.setAttribute("");
//将给定元素节点添加一个新的属性值或改变它的现有属性的值。
//属性的名字和值必须以字符串的形式传递给此方法
//如果这个属性已经存在,它的值将被刷新;
//如果不存在,setAttribute()方法将先创建它再为其赋值
h.节点的增、删、改、查
[增]
.createElement_x("");
//按照给定的标签名创建一个新的元素节点。
//方法只有一个参数:将被创建的元素的名字,是一个字符串.
var reference = document.createElement_x(element);
//方法的返回值:是一个指向新建节点的引用指针。返回值是一个元素节点,所以它的 nodeType 属性值等于 1。
//新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性,它只是一个存在于 JavaScript 上下文的对象.
var oP = document.createElement_x("p");
.createTextNode("");
//创建一个包含着给定文本的新文本节点。这个方法的返回值是一个指向新建文本节点引用指针。
var reference = document.createTextNode(text);
//方法只有一个参数:新建文本节点所包含的文本字符串
//方法的返回值:是一个指向新建节点的引用指针。它是一个文本节点,所以它的 nodeType 属性等于 3.
//新元素节点不会自动添加到文档里,新节点没有 nodeParent 属性
var oText = document.createTextNode(“Hello World”);
.appendChild(newNode);
//为给定元素增加一个子节点:
//给定子节点 newChild 将成为给定元素节点 element 的最后一个子节点。
//方法的返回值是一个指向新增子节点的引用指针。
//该方法通常与 createElemen
//新节点可以被追加给文档中的任何一个元素
.insertBefore(newNode,targetNode);
//把一个给定节点插入到一个给定元素节点的给定子节点的前面
//节点 newNode 将被插入到元素节点 element 中并出现在节点 targetNode 的前面.
节点 targetNode 必须是 element 元素的一个子节点。
//该方法通常与 createElement_x() 和 createTextNode() 配合使用
.
[删]
.removeChild("");
//从一个给定元素里删除一个子节点
//返回值是一个指向已被删除的子节点的引用指针。
//某个节点被 removeChild() 方法删除时,这个节点所
包含的所有子节点将同时被删除。
//如果想删除某个节点,但不知道它的父节点是哪一个,parentNode 属性可以帮忙。
[改]
.replaceChild(newChild,oldChild);
//把一个给定父元素里的一个子节点替换为另外一个子节点
//返回值是一个指向已被替换的那个子节点的引用指针
//如果被插入的子节点还有子节点,则那些子节点也被插入到目标节点中
[查]
.hasChildNodes();
//检查是否存在子节点,返回true、false
//文本、属性节点永远返回false
//如果返回false,则childNodes,firstChild,lastChild将是空数组和空字符串
.childNodes;
//返回子节点数组
//文本节点和属性节点都不可能再包含任何子节点,所以它们的 ChildNodes 属性永远会返回一个空数组。
//如果想知道某个元素有没有子节点,可以用 hasChildNodes 方法。
//如果想知道某个元素有多少个子节点,可以用 childNodes 数组的 length 属性。
//childNodes 属性是一个只读属性。
.firstChild;
//该属性返回一个给定元素节点的第一个子节点,返回这个节点对象的指针
//文本节点和属性节点都不可能包含任何子节点,所以它们的 firstChild 属性永远会返回 null。
//某个元素的 firstChild 属性等价于这个元素的 childNodes 节点集合中的第一个节点
//firstChild 属性是一个只读属性
.lastChild:对应 firstChild 的一个属性。
.nextSibling: 返回一个给定节点的下一个子节点。
.parentNode:返回一个给定节点的父节点。
.parentNode 属性返回的节点永远是一个元素节点,因为只有元素节点才有可能包含子节点。
document 节点的没有父节点。
.previousSibling:返回一个给定节点的上一个子节点
i.innerHTML;
//浏览器几乎都支持该属性,但不是 DOM 标准的组成部分。
//innerHTML 属性可以用来读,写某给定元素里的 HTML 内容
//innerHTML 注意 tr不能直接添加tr节点
=====案例解析======
inputs.length、inputs[i].type对于input节点的属性
table 的子节点是 thead、tbody
user.onclick=del(this);是把函数执行结果赋给函数
IE不支持在option上添加事件