2015-08-21 112 views
1

我想從網頁收集數據,這裏有很多這樣的線條?getElementsByClassName和<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 S'儘管我學到了java和一點點xml,但我可以用java做,但網頁有DDoS保護,所以我無法連接/下載它。

+1

' linkTitle = titles [i] .innerText;'for'循環內' – Tushar

回答

2

你從getElementsByClassName()得到的東西是DOM節點。該.toString()功能將不會是非常有用的,但DOM的API將讓你的屬性和節點內容:

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

這將提取href屬性到您的陣列。 (您仍然可以點是.split()如果你想當然的URL的部分。)如果你想要的文字:

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); 
} 
+0

感謝您的快速回答,工作正常! – junpet