在JavaScript中除了document类型之外,Element类型就要算是Web编程中最常用的类型了。Element类型用于表现XML或者HTML元素,提供了对元素标签名,子节点及特性的访问;
特征:
1.nodeType的值为1;
2.nodeName的值为元素的标签名;
3.nodeValue的值为null;
4.parentNode可能是document或Element;
5.其子节点可能是Element,Text,Coment,ProcessingInstruction,CDATASection或EntityReference。
实例:
访问元素标签名:
<body>
<div id="myDiv">
</div>
</body>
<script>
var myDiv = document.getElementById('myDiv');
alert(myDiv.tagName);
alert(myDiv.tagName==myDiv.nodeName);
</script>
再HTML中标签名始终都以全部大写表示,而在有的XML中标签名始终会与源代码保持一致,如果不确定标签名的大小写形式,建议统一转成小写;
对比标签名:
if(element,tagName.toLowerCase()=="div"){
//在此执行某些操作
}
HTM元素:
所有HTML元素都由HTMLElement类型表示,不是直接通过这个类型,也是通过它的子类型来表示。HTMLElement类型直接继承自Element并添加了一些属性。添加的这些属性分别对应于每个HTML元素中都存在的下拉标准特效。
1.id,元素在文档的唯一标识符。
2.title,有关元素的附加说明信息
3.lang,元素内容的语言代码,很少使用。
4.div,语言的方向
5.className元素的class特效对应,即为元素指定的css类。
<body>
<div id="myDiv" class="class" title="hello" lang="cn" >
</div>
</body>
<script>
var myDiv = document.getElementById('myDiv');
alert(myDiv.tagName);
alert(myDiv.tagName==myDiv.nodeName);
alert(myDiv.id);
alert(myDiv.className);
alert(myDiv.title);
alert(myDiv.lang);
</script>
attrubutes属性
Element类型是使用attributes属性的唯一一个DOM节点类型。attributes属性中包含一个NamedNodeMap,与NodeList类似,也是一个动态的集合。元素的每一个特性都由一个attr节点表示,每个节点都保存在namedNodeMap对象中。
遍历元素的特性:
<body>
<div id="myDiv" class="class" title="hello" lang="cn">
</div>
</body>
<script>
var myDiv = document.getElementById('myDiv');
alert(outAttributes(myDiv));
function outAttributes(element){
var pairs=new Array(),
attrName,attrValue,i,len;
for(i=0,len=element.attributes.length;i<len;i++){
attrName=element.attributes[i].nodeName;
attrValue=element.attributes[i].nodeValue;
pairs.push(attrName+"=\""+attrValue+"\"");
}
return pairs.join(" ");
}
</script>
本函数使用了一个数组来保存名值对,最后再以空格分隔符拼接起来,这是序列化长字符串的椅子常用技巧;
创建元素:
var div=document.createElement("div");
添加元素:
<script>
var div=document.createElement("div");
div.id="newDiv";
div.classNmae="box";
</script>
这样创建元素并未被添加到文档树种,我们要使用appendChild()方法insertBefore()或replaceChild()方法。
document.body.appendChild(div);
当然你也可以直接创建并且加上标签:
var input=document.createElement("<input type=\"checkbox\">");
document.body.appendChild(input);
当然jquery提供了更简单快捷的办法,有兴趣的可以自己去查看一下;