从循环中分离innerText值

时间:2014-03-27 13:32:03

标签: javascript loops

我正试图通过这个循环从我的文档中的所有'a'标签中获取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添加+','时,逗号只显示在'list'的末尾。像这样:

Tom Odell
Elbow
Aloe Blacc
Michael Prins
, 

有人可以告诉我如何让它像这样显示

Tom Odell,
Elbow,
Aloe Blacc,
Michael Prins,

2 个答案:

答案 0 :(得分: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'));

答案 1 :(得分:0)

试试这个

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