HTML DOM
HTML DOM是HTML Document Object Model(文档对象模型)的缩写,HTML DOM则是专门适用与HTML/XHTML的文档对象模型。熟悉软件开发的人员可以将HTML DOM理解为网页的API。它将网页中的各个元素都看作一个个对象,从而使网页中的元素也可以被计算机语言获取或者编辑。
HTML DOM 把 HTML 文档呈现为带有元素、属性和文本的树结构(节点树)。
节点:
DOM 是这样规定的:
整个文档是一个文档节点
每个 HTML 标签是一个元素节点
包含在 HTML 元素中的文本是文本节点
每一个 HTML 属性是一个属性节点
注释属于注释节点
元素节点类型(nodeType):1
文本节点类型(nodeType:3
属性节点类型(nodeType:2
节点的访问:
getElementById() 和 getElementsByTagName()方法
getElementById() 和 getElementsByTagName() 这两种方法,可查找整个 HTML 文档中的任何 HTML 元素。这两种方法会忽略文档的结构。假如您希望查找文档中所有的 <p> 元素,getElementsByTagName() 会把它们全部找到,不管 <p> 元素处于文档中的哪个层次。同时,getElementById() 方法也会返回正确的元素,不论它被隐藏在文档结构中的什么位置。
语法:
<span id=”ID”></span>
document.getElementById("ID");
注:此方法只能用于document 对象
getElementsByTagName() 语法
document.getElementsByTagName("标签名称");
或者:
document.getElementById('ID').getElementsByTagName("标签名称");
实例:
下面这个例子会返回所有 <p> 元素的一个节点列表,且这些 <p> 元素必须是 id 为 "maindiv" 的元素的后代:
document.getElementById('maindiv').getElementsByTagName("p");
parentNode、firstChild以及lastChild方法
parenNode--------父节点
firstChild-----------首节点
lastChild-----------尾节点
实例:
<script type="text/javascript">
window.onload = function() {
//通过getElementById("edu")方法获取select的对象
var edus = document.getElementById("edu");
var edus1 = edus.childNodes;
alert(edus1.length);
var fc = edus.firstChild;
alert(fc.nodeName);
var lc = edus.lastChild;
alert(lc.nodeName);
var llc = lc.firstChild;
alert(llc.nodeValue);
var msg="";
for(var i=0;i<edus1.length;i++){
if(edus1[i].nodeType==1)
msg+=edus1[i].lastChild.nodeValue+",";
}
document.getElementById("showMsg").innerHTML=msg;
}
</script>
<body>
<div>
<form action="">
用户名:<input type="text" name="name" />
学历:
<select id="edu" name="education"><option value="大专">大专生</option>
<option value="本科">本科生</option>
<option value="硕士">硕士生</option>
<option value="博士">博士生</option>
</select>
<input type="submit" value="注册" />
</form>
</div>
用户的学历是:
<div id="showMsg">
</div>
</body>
注意 标签之间的空格也算节点。上面方法比较不容易理解、下面有更简单的方法:
<script type="text/javascript">
window.onload = function() {
//通过getElementById("edu")方法获取select的对象
var edus = document.getElementById("edu");
//通过select中options集合获取所有的option对象
var edus1 = edus.options;
var msg ="";
//遍历所有的option对象的文本值
for(var i=0;i<edus1.length;i++){
msg+=edus1[i].innerHTML+",";
}
//把获取的msg信息写入到showMsg的div中
document.getElementById("showMsg").innerHTML=msg;
}
</script>
此方法用options直接得到OPTION的值