2014-03-27 41 views
0

我試圖從我的文檔中的所有'a'標籤中使用此循環獲取innerText值。從循環中分離innerText值

var x = document.getElementById("toplist-artists"); 
        var y = x.getElementsByTagName("a"); 
        var nodeListLength = y.length; 

        for (i=0;i<nodeListLength;i++) { 
         var artists = x.innerText; 
        } 

        console.log(artists); 

這個工程,現在我想分開這些值用逗號或空格。當我將+','添加到x.innertext時,逗號僅顯示在「列表」的末尾。就像這樣:

Tom Odell 
Elbow 
Aloe Blacc 
Michael Prins 
, 

可有人請告訴我如何得到它顯示這樣

Tom Odell, 
Elbow, 
Aloe Blacc, 
Michael Prins, 
+0

'的innerText '不受所有瀏覽器支持。我建議使用jQuery等庫。有關更多詳細信息,請閱讀[本文](http://stackoverflow.com/a/1359822/3215948)。 –

回答

1

首先,解決您的循環:因爲它的立場,這是毫無意義的,因爲你不改變基於循環計數器的變量。它必須是y[i],而不是x.innerText;否則爲什麼它在循環內?

其次,使用循環來收集數組中的所有文本。那麼這將是微不足道的,讓你需要一個字符串 - 只需使用join到所有的值連接成一個單一的一個,用逗號和EOL作爲分隔符:

var artists = []; 
for (var i=0; i < nodeListLength; i++) { 
    artists.push(y[i].textContent); // `textContent` supported by all but IE8- 
} 
console.log(artists.join(',\n')); 
+0

偉大的工作人。現在就像一個魅力! – user3182261

0

試試這個

var artists = ""; 
for (i=0;i<nodeListLength;i++) { 
    artists += x.innerText+", "; 
}