问问题
6725 次
5 回答
7
您可以使用NodeList
. 该列表有一个,您可以使用 对其进行索引。例如:a
document.getElementsByTagName
length
[]
var links = document.getElementsByTagName('a');
var i;
for (i = 0; i < links.length; ++i) {
// Do something with links[i].href
}
在现代浏览器上,如果你想进一步限制(例如,只链接download-link
到它们上的类),你可以使用querySelectorAll
接受 CSS 选择器:
var links = document.querySelectorAll('a.download-link');
// ...and then use it the same way as above
于 2013-10-31T23:14:57.620 回答
1
您只获取一个具有特定 ID 的元素。您需要获取所有锚元素
<script>
function myFunction()
{
var anchors = document.getElementsByTagName('a');
for (var i = 0; i < anchors.length; i++) {
var url = anchors[i].href;
alert(url.split('.').pop());
}
}
</script>
于 2013-10-31T23:19:53.637 回答
1
document.getElementById()
返回由属性标识的单个唯一元素的对象id
。您正在寻找共享一个共同点的所有对象,class
为此您需要类似document.getElementsByTagName()
.
于 2013-10-31T23:22:35.500 回答
0
您可以在 document.links 集合上调用数组方法映射。
链接元素其 url 的字符串值。
var hrefs= [].map.call(document.links,String);
alert(hrefs.join('\n'));
于 2013-11-01T00:52:38.950 回答
0
getElementById()
只检索一个对象,因为给定的 . 只能有一个对象id
。但是这些都没有以 id 开头。
您可以getElementsByTagName('a')
按照已经建议的方式使用,但这会检索a
页面中所有标签的列表,显然这不是您真正想要的。
我想你应该选择第三个选项getElementsByClassName()
:
var objs = document.getElementsByClassName('download-link');
var links = [];
for (var i = 0; i < objs.length; ++i)
links[i] = objs[i].href;
alert(links.join('\n'));
于 2013-10-31T23:22:14.113 回答