getElementsByClassName 和 <a class="asdf" href="url.com">String</a>

getElementsByClassName and <a class="asdf" href="url.com">String</a>

我想从一个有很多这样的行的网页中收集数据?

<a class="asdf" href="http://url.com/jkl/0123/qwer">String</a>

从这一行我需要 url (0123) 和 String 中的数字。 我可以想出如何获得数字,但我对 String 有疑问。我有这段代码,它收集数组中的数字:

var titles = document.getElementsByClassName("link-title");
var ids=[];
var tmp;
var i;
for (i=0; i<titles.length; i++) {
    tmp=titles[i].toString().split("/");
    ids.push(tmp[4]);
}

是否可以从 titles 中获取 String?我完全不懂 java 脚本,虽然我学了 java 和一点 xml 并且我可以在 java 中做,但是网页有一些 DDoS 保护,所以我不能 connect/download 它。

你从 getElementsByClassName() 得到的东西是 DOM 个节点。 .toString() 函数不是很有用,但是 DOM API 可以让您获取属性和节点内容:

for (i=0; i<titles.length; i++) {
    ids.push( titles[i].href );
}

这会将 href 属性提取到您的数组中。 (当然,如果你想要部分 URL,你仍然可以点 .split()。)如果你想要文本:

for (i=0; i<titles.length; i++) {
    ids.push( titles[i].textContent );
}

要与 Internet Explorer 兼容,那就是:

for (i=0; i<titles.length; i++) {
    ids.push( titles[i].textContent || titles[i].innerText );
}