我有这段代码在<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;)但没有成功。
答案 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>'
);