1、通过id获取网页中的某一部分
在一个网页里,id属性是一个元素的标识符,所有的网页元素都可以拥有这个id属性。通常,id是不允许重复的。因此,通过id来获取网页中一个元素的DOM是最常见的定位元素的方法。
该实例主要演示如何使用getElementById()来获取一个元素的DOM对象。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>通过id获取一个特定的DOM元素</title>
<script type="text/javascript">
function getDomText(){
var myLink = document.getElementById("myLink");
var mySpan = document.getElementById("mySpan");
var str = '';
str += myLink.innerHTML;
str += mySpan.innerHTML;
alert("两个DOM的内容是:"+str);
}
</script>
</head>
<body style="text-align:center">
<p>
<a id="myLink" href="#">链接</a>
<span id="mySpan">文字</span>
<br/>
<input type="button" value="获取" onclick="getDomText()"/>
</p>
</body>
</html>
效果:
点击“获取”按钮之后,弹出:
2、据name获取网页中的全部复选框
与id不同,多个元素可使用相同的name属性,譬如复选框。因此,若要获取这一类元素的DOM对象,就需要使用getElementsByName()。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>据标签名获取多个元素</title>
<script type="text/javascript">
function getDomsByName(){
var doms = document.getElementsByName("myName");
var str = '';
for (var i = 0; i < doms.length; i++) {
str += doms[i].tagName;
str += ",";
}
alert("两个DOM的文本是:"+str);
}
</script>
</head>
<body style="text-align:center">
<p>
<a name="myName" href="#">链接</a>
<span name="myName">文字</span>
<br/>
<input type="button" value="获取" onclick="getDomsByName()"/>
</p>
</body>
</html>
运行效果:
解析:
name属性是网页元素的有一个重要属性,尤其对于表单控件来说,在提交表单时,name就是参数的名称。获取同一个name的多个元素应用得比较广,比如可用于校验复选框是否已经勾选。
3、据标签名获取网页中的多个元素
获取多个DOM的方式还有获取相同标签的DOM。如获取网页里所有图片、所有链接等
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>据标签名获取多个元素</title>
<script type="text/javascript">
function getDomsByTag(){
var doms = document.getElementsByTagName("span");
var str = '';
for (var i = 0; i < doms.length; i++) {
str += doms[i].innerHTML;
str += ",";
}
alert("两个DOM的文本是:"+str);
}
</script>
</head>
<body style="text-align:center">
<p>
<span>文字一</span>
<span>文字二</span>
<br/>
<input type="button" value="获取" onclick="getDomsByTag()"/>
</p>
</body>
</html>
运行效果:
说明:同一类元素的获取,需使用document对象的getElementsByTagName(),其参数为标签的名字。碎玉HTML来说,标签的大小写是不敏感的,所以,该函数的参数对大小写也是不敏感的。