数组 - Dom对象列表 ¶
作者:KK
发表日期:2016.2.25
通过标签名称获取Dom对象 ¶
以前我们的实例中要操作一个标签的内容变化就要先用document.getElementById
方法取得Dom元素对象
其实要获取Dom元素对象并不只能通过那个方法来获取,也可以尝试其它方法,下面的例子使用document.getElementsByTagName
来获取:
<html>
</head>
<meta charset="UTF-8">
<title>获取所有相同标签</title>
<script>
window.addEventListener('load', function(){
var links = document.getElementsByTagName('a'); //通过标签名获取元素,标签名叫a
if(links == null){
return; //找不到指定的标签,你试试将上面的a改成div就会找不到了
}
alert('一共取得' + links.length + '个a标签元素对象');
for(var i = 0; i < links.length; i++){
var tag = links[i];
alert('第' + (i + 1) + '个a标签的内容是:"' + tag .innerHTML + '"\n它的链接是:"' + tag.href + '"');
}
});
</script>
</head>
<body>
<a href="http://www.kkh86.com/it/index.html">野生程序员的成长之路</a>
<a href="http://www.kkh86.com/it/codeception/guide-README.html">PHP-Codeception测试开发</a>
<p>
<a href="http://www.kkh86.com/it/web-debug/guide-README.html">Web开发调试技巧分享</a>
</p>
</body>
</html>
注意到了吗,它说有3个a标签,意味着p标签里包住的也给取出来了,因为getElementsByTagName
是遇到参数所指的标签名就都会将它取出来的,就算标签名写成大写也依然取出来(比如<A href=...>
)
注意一下document对象的这两个方法的区别:
getElementById
:根据ID获取一个DOM对象并返回getElementsByTagName
:注意By前面多了个s,是getElements..
而不是上面那样只是getElement..
,多了s就是复数,所以这个方法返回的并不是一个对象,而是很多个对象,这些对象都在一个数组里面,如果在网页元素中找不到这个元素的标签就会返回空数组
通过class名字获取 ¶
就是把所有class属性值相同的标签都取出来
<html>
</head>
<meta charset="UTF-8">
<title>获取所有相同标签</title>
<script>
window.addEventListener('load', function(){
var spans = document.getElementsByClassName('name'); //通过class获取元素
alert('找到' + spans.length + '个class="name"的标签,内容分别是:');
for(var i = 0; i < spans.length; i = i + 1){
alert(spans[i].innerHTML);
}
});
</script>
</head>
<body>
<span class="name">小明</span>
<span class="age">18岁</span>
<p>
<span class="name">小红</span>
</p>
</body>
</html>
注意,这里class="age"的岁数标签并没有被取出呢