用换行符替换显示的数组逗号

时间:2016-09-03 20:47:13

标签: javascript jquery arrays

我有这段代码在<li>元素中获取一些链接,然后将它们的内容放入一个数组中。哪个工作正常。

HTML

<ul id="links">
    <li><a href="#" title="Open this form">Test 1</a></li>
    <li><a href="#" title="Open this form">Test 2</a></li>
    <li><a href="#" title="Open this form">Test 3</a></li>
</ul>

<div id="temporary-pool"></div>

JS

var links = [];

$("#links li").each(function() {
    var rawLinks = $(this).html()
    var textLinks = rawLinks.replace(/<a\b[^>]*>/i,"").replace(/<\/a>/i, "");

    links.push(textLinks);
});

console.log(links);     

$("#temporary-pool").html(
    '<textarea  id="clean-links">'
        +links+
    '</textarea>'
);

但是,我想在<textarea>中显示内容。当我只是打印它时,它显然输出为:

Test 1,Test 2,Test 3

我想要的是将结果输出为:

Test 1
Test 2
Test 3

我尝试使用正则表达式(我相信我需要更换&#34;,&#34;与&#34;&#13; &#34;)但没有成功。

2 个答案:

答案 0 :(得分:3)

这应该这样做:

$("#temporary-pool").html(
    '<textarea  id="clean-links">'
        +links.join("\n")+
    '</textarea>'
);

您可以找到有关join(...) HERE

的更多信息

为了简化代码的其他部分,您可以执行以下操作:

$("#links li").each(function() {
   links.push($(this).text());
});

有关jQuery.text() HERE

的信息

答案 1 :(得分:0)

使用换行符,并将逗号分类为

var links = [];

$("#links li").each(function() {
    var rawLinks = $(this).html()
    var textLinks = rawLinks.replace(/<a\b[^>]*>/i,"").replace(/<\/a>/i, "");

    links.push(textLinks.substring(0, textLinks.length-1) + "\n");
});

console.log(links);     

$("#temporary-pool").html(
    '<textarea  id="clean-links">'
        +links+
    '</textarea>'
);

假设逗号是原始字符串的最后一个字符是逗号,否则逗号来自直接输出数组。 在这种情况下,请将其设为字符串:

var txtValue = "";
for(var i = 0;i<links.length;i++){
    txtValue = txtValue + links[i];
}

$("#temporary-pool").html(
    '<textarea  id="clean-links">'
        +txtValue+
    '</textarea>'
);