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 );
}
我想从一个有很多这样的行的网页中收集数据?
<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 );
}