[b]createDocumentFragment() [/b]
创建一个文档片断(fragment)节点。在大量dom操作时,通过createDocumentFragment方式的效率较高
例:
var fragment = document.createDocumentFragment();//创建文档碎片
[b]createElement(element) [/b]
创建一个新的指定标签名的元素节点,返回值为指向新建元素节点的引用指针。
例:
var para = document.createElement("p");
document.body.appendChild(para);
[b]createTextNode() [/b]
创建一个包含着给定文本的新文本节点,返回一个指向新建文本节点的引用指针:
reference = document.createTextNode()
参数为新建文本节点所包含的文本字符串
例:
var message = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(message);
document.body.appendChild(container);
[b]cloneNode() [/b]
reference = node.cloneNode(deep)
为给定节点创建一个副本,参数为 true 或者 false,true 表示同时复制该节点的子节点,false 则不复制任何子节点。
var para = document.createElement("p");
var message = document.createTextNode("hello world");
para.appendChild(message);
document.body.appendChild(para);
var newpara = para.cloneNode(true);
document.body.appendChild(newpara);
注意:克隆节点 会存在浏览器兼容性问题(比如,文件域input克隆的副本,在ie中不会携带value属性值,但是在FF中会携带value属性值;select克隆的副本,ie中会选择第一个选项,但是在FF中会选择页面初始化时选择的那个选项)
[b]appendChild() [/b]
reference = node.appendChild(newChild);
插入节点: 将newChild添加到node的childNodes的末尾
注意:appendChild()方法与insertBefore()方法都是剪切式操作DOM
[b]insertBefore() [/b] 注:父节点调用此方法
reference = element.insertBefore(newNode,targetNode)
将一个给定节点插入到一个给定元素节点的给定子节点的前面(即:把一个新节点插入到一个现有节点的前面,注:父节点调用此方法),返回一个指向新增子节点的引用指针。
例:
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var para = document.createElement("p");
container.insertBefore(para,message);
[b]removeChild()[/b] 注:父节点调用此方法
reference = element.removeChild(node)
将从一个给定元素删除一个子节点,返回一个指向已被删除的子节点的引用指针。
当某个节点被 removeChild()删除后,此节点所有子节点都被删除。
删除domObj可以这样实现:domObj.parentNode.removeChild(domObj);
[b]replaceChild()[/b] 注:父节点调用此方法
reference = element.replaceChild(newChild,oldChild)
把一个给定父元素里的一个子节点替换为另外一个节点,oldChild 节点必须是 element 元素的一个子节点,返回值是一个指向已被替换的那个子节点的引用指针。
例:
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var para = document.createElement("p");
container.replaceChild(para,message);
[b]setAttribute()[/b]
element.setAttribute(attributeName,attributeValue);
为给定元素节点添加一个新的属性值或是改变它的现有属性
[b]getAttribute()[/b]
attributeValue = element.getAttribute(attributeName)
返回一个给定元素的一个给定属性节点的值。
[b]getElementById()[/b]
element = document.getElementById(ID)
寻找一个有着给定 id 属性值的元素,返回一个元素节点
[b]getElementsByName()[/b]
document.getElementsByName("nameValue");
返回文档中的name属性值为nameValue的所有节点集合;
[b]getElementsByTagName() [/b]
用于寻找有着给定标签名的所有元素:
elements = document.getElementsByTagName(tagName) ;返回此文档中所有标签名为tagName的节点集合。
elements = domObj.getElementsByTagName(tagName) ;返回指定节点的所有子节点中(递归)的标签名为tagName的节点集合。
[b]hasChildNodes()[/b]
用来检查一个给定元素是否有子节点
booleanValue = element.hasChildNodes()
返回 true 或 false。
[b]DOM属性[/b]
节点的属性
nodeName属性将返回一个字符串,其内容是给定节点的名字。
如果节点是元素节点,返回这个元素的标签名称;
如果是属性节点,返回这个属性的名称;
如果是文本节点,返回一个内容为#text 的字符串;
nodeType属性将返回一个整数,这个数值代表给定节点的类型:1代表元素节点;2代表属性节点;3代表文本节点
nodeValue属性将返回给定节点的当前值
如果节点是元素节点,返回null;
如果是属性节点,返回这个属性的名称;
如果是文本节点,返回文本节点的内容;
childNodes 所有子节点的列表
firstChild 指向在childNodes列表中的第一个节点
lastChild 指向在childNodes列表中的最后一个节点
nextSibling 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null
previousSibling 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null
parentNode 返回一个给定节点的父节点
[b]javascript DOM 遍历[/b]
以下一系列的辅助函数可以帮助您,他们能取代标准的previousSibling,nextSibling,firstChild,lastChild,parentNode;
//------------------------DOM 遍历,如果元素没找到则返回null-----------------------//
//---查找相关元素的前一个兄弟元素---//
function prev(elem){
do{
elem=elem.previousSibling;
}while(elem&&elem.nodeType!=1);
return elem;
}
//---查找相关元素的下一个兄弟元素---//
function next(elem){
do{
elem=elem.nextSibling;
}while(elem&&elem.nodeType!=1);
return elem;
}
//---查找第一个子元素的函数---//
function first(elem){
elem=elem.firstChild;
return elem && elem.nodeType!=1 ?next(elem):elem;
}
//---查找最后一个子元素的函数---//
function last(elem){
elem=elem.lastChild;
return elem && elem.nodeType!=1 ?prev(elem):elem;
}
//---查找父级元素的函数---//
//num是父级元素的级次,parent(elem,2)等价于parent(parent(elem))
function parent(elem,num){
num=num||1;
for(var i=0; i<num; i++){
if(elem!=null){
elem=elem.parentNode;
}
}
return elem;
}
创建一个文档片断(fragment)节点。在大量dom操作时,通过createDocumentFragment方式的效率较高
例:
var fragment = document.createDocumentFragment();//创建文档碎片
[b]createElement(element) [/b]
创建一个新的指定标签名的元素节点,返回值为指向新建元素节点的引用指针。
例:
var para = document.createElement("p");
document.body.appendChild(para);
[b]createTextNode() [/b]
创建一个包含着给定文本的新文本节点,返回一个指向新建文本节点的引用指针:
reference = document.createTextNode()
参数为新建文本节点所包含的文本字符串
例:
var message = document.createTextNode("hello world");
var container = document.createElement("p");
container.appendChild(message);
document.body.appendChild(container);
[b]cloneNode() [/b]
reference = node.cloneNode(deep)
为给定节点创建一个副本,参数为 true 或者 false,true 表示同时复制该节点的子节点,false 则不复制任何子节点。
var para = document.createElement("p");
var message = document.createTextNode("hello world");
para.appendChild(message);
document.body.appendChild(para);
var newpara = para.cloneNode(true);
document.body.appendChild(newpara);
注意:克隆节点 会存在浏览器兼容性问题(比如,文件域input克隆的副本,在ie中不会携带value属性值,但是在FF中会携带value属性值;select克隆的副本,ie中会选择第一个选项,但是在FF中会选择页面初始化时选择的那个选项)
[b]appendChild() [/b]
reference = node.appendChild(newChild);
插入节点: 将newChild添加到node的childNodes的末尾
注意:appendChild()方法与insertBefore()方法都是剪切式操作DOM
[b]insertBefore() [/b] 注:父节点调用此方法
reference = element.insertBefore(newNode,targetNode)
将一个给定节点插入到一个给定元素节点的给定子节点的前面(即:把一个新节点插入到一个现有节点的前面,注:父节点调用此方法),返回一个指向新增子节点的引用指针。
例:
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var para = document.createElement("p");
container.insertBefore(para,message);
[b]removeChild()[/b] 注:父节点调用此方法
reference = element.removeChild(node)
将从一个给定元素删除一个子节点,返回一个指向已被删除的子节点的引用指针。
当某个节点被 removeChild()删除后,此节点所有子节点都被删除。
删除domObj可以这样实现:domObj.parentNode.removeChild(domObj);
[b]replaceChild()[/b] 注:父节点调用此方法
reference = element.replaceChild(newChild,oldChild)
把一个给定父元素里的一个子节点替换为另外一个节点,oldChild 节点必须是 element 元素的一个子节点,返回值是一个指向已被替换的那个子节点的引用指针。
例:
var container = document.getElementById("content");
var message = document.getElementById("fineprint");
var para = document.createElement("p");
container.replaceChild(para,message);
[b]setAttribute()[/b]
element.setAttribute(attributeName,attributeValue);
为给定元素节点添加一个新的属性值或是改变它的现有属性
[b]getAttribute()[/b]
attributeValue = element.getAttribute(attributeName)
返回一个给定元素的一个给定属性节点的值。
[b]getElementById()[/b]
element = document.getElementById(ID)
寻找一个有着给定 id 属性值的元素,返回一个元素节点
[b]getElementsByName()[/b]
document.getElementsByName("nameValue");
返回文档中的name属性值为nameValue的所有节点集合;
[b]getElementsByTagName() [/b]
用于寻找有着给定标签名的所有元素:
elements = document.getElementsByTagName(tagName) ;返回此文档中所有标签名为tagName的节点集合。
elements = domObj.getElementsByTagName(tagName) ;返回指定节点的所有子节点中(递归)的标签名为tagName的节点集合。
[b]hasChildNodes()[/b]
用来检查一个给定元素是否有子节点
booleanValue = element.hasChildNodes()
返回 true 或 false。
[b]DOM属性[/b]
节点的属性
nodeName属性将返回一个字符串,其内容是给定节点的名字。
如果节点是元素节点,返回这个元素的标签名称;
如果是属性节点,返回这个属性的名称;
如果是文本节点,返回一个内容为#text 的字符串;
nodeType属性将返回一个整数,这个数值代表给定节点的类型:1代表元素节点;2代表属性节点;3代表文本节点
nodeValue属性将返回给定节点的当前值
如果节点是元素节点,返回null;
如果是属性节点,返回这个属性的名称;
如果是文本节点,返回文本节点的内容;
childNodes 所有子节点的列表
firstChild 指向在childNodes列表中的第一个节点
lastChild 指向在childNodes列表中的最后一个节点
nextSibling 指向后一个兄弟节点;如果这个节点就是最后一个兄弟节点,那么该值为null
previousSibling 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null
parentNode 返回一个给定节点的父节点
[b]javascript DOM 遍历[/b]
以下一系列的辅助函数可以帮助您,他们能取代标准的previousSibling,nextSibling,firstChild,lastChild,parentNode;
//------------------------DOM 遍历,如果元素没找到则返回null-----------------------//
//---查找相关元素的前一个兄弟元素---//
function prev(elem){
do{
elem=elem.previousSibling;
}while(elem&&elem.nodeType!=1);
return elem;
}
//---查找相关元素的下一个兄弟元素---//
function next(elem){
do{
elem=elem.nextSibling;
}while(elem&&elem.nodeType!=1);
return elem;
}
//---查找第一个子元素的函数---//
function first(elem){
elem=elem.firstChild;
return elem && elem.nodeType!=1 ?next(elem):elem;
}
//---查找最后一个子元素的函数---//
function last(elem){
elem=elem.lastChild;
return elem && elem.nodeType!=1 ?prev(elem):elem;
}
//---查找父级元素的函数---//
//num是父级元素的级次,parent(elem,2)等价于parent(parent(elem))
function parent(elem,num){
num=num||1;
for(var i=0; i<num; i++){
if(elem!=null){
elem=elem.parentNode;
}
}
return elem;
}