2
4

5 回答 5

7

您可以使用NodeList. 该列表有一个,您可以使用 对其进行索引。例如:adocument.getElementsByTagNamelength[]

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 回答