以下函数摘录自【精通javascript】
1.获取元素内的文本
例如:有标签<strong>,取<strong>的文本内容:
非mozilla浏览器:strongelem.innertext
其它浏览器:strongelem.firstchild.nodevalue;
还有一个通用的函数:
function text(e){
var t="";
e = e.childnodes || e;
for(var j=0;j<e.length;j++){
t += e[j].nodetype != 1 ? e[j].nodevalue : text(e[j].childnodes);
}
return t;
}
2.获取元素内的html
所有现代浏览器,都实现了html dom 元素的一个额外属性:innerhtml.使用这个属性就可以从一个元素中提取
所有的html和文本了。如果元素内,只有文本,可以替换上面的方法;如果含有子元素,则提取所有子元素和文本。
3.操作元素特性
获取和设置特性的值,常用的可以使用getattribute和setattribute.HTML DOM文档还有作为快速特性
获取器(getter)/设置器(setter)的额外属性集合,比如:element.id="main",element.value="123",
作者有个更通用的方法,来获取和设置,写得很好,可以看看81页。
下面是总结的一些在DOM中常用的方法:
/** 根据id获得元素 */
function id(name){
return document.getElementById(name);
}
/**
有elem参数,是查找elem下的节点名;如果没有elem,则查找整个文档
*/
function tag(name,elem){
return (elem || document).getElementsByTagName(name);
}
/**
找出全部有指定类值的元素
*/
function hasclass(name,type){
var r=[];
var re=new RegExp("(^|//s)" + name + "(//s|$)");
var e = document.getElementsByTagName(type || "*");
for(var j=0;j<e.length;j++)
if(re.test(e[j])) r.push(e[j]);
return r;
}
/**
获取元素文本内容的通用函数
*/
function text(e){
var t = "";
e= e.childNodes || e;
for(var j=0;j<e.length;j++){
t += e[j].nodeType != 1 ? e[j].nodeValue : text(e[j].childNodes);
}
return t;
}
/**
删除一个独立的dom节点
*/
function remove(elem){
if(elem)
elem.parentNode.removeChild(elem);
}
/**
删除一个元素下的所有子节点
*/
function empty(elem){
while(elem.firstChild)
remove(elem.firstChild);
}