Javascript 返回标记的文本值,并在每个标记后附加换行符

Javascript 返回标记的文本值,并在每个标记后附加换行符,javascript,jquery,html,Javascript,Jquery,Html,如果我调用这个函数: $("#item").text() 关于此HTML代码: <div id="item"> <pre><span class="cm-tag">&lt;html&gt;</span></pre><pre><span class="cm-tab"> </span>asdf</pre><pre><span class="cm-tag

如果我调用这个函数:

$("#item").text()
关于此HTML代码:

<div id="item">
<pre><span class="cm-tag">&lt;html&gt;</span></pre><pre><span class="cm-tab">    </span>asdf</pre><pre><span class="cm-tag">&lt;/html&gt;</span></pre>
</div>

html asdf/html
它返回:

var clone = $("#item").clone(); //create a clone we can manipulate
clone.find('pre').after('\n');  //stick new lines in after <pre> tags
alert(clone.text());            //behold the alert glory
“asdf”
我希望它能回来:

var text = '';
$("#item pre").map(function(i, el) {
    return $(el).text().replace(/\s/g, '')
}).each(function(i, val) {
    if (i == 0) 
        text += val.concat('\n\t');
    else
        text += val.concat('\n');
});
'
asdf
'

基本上,我需要在每个
标记后添加一行新行。。。我该怎么做?

一个可能的解决方案,获取每个pre的文本并用新行连接它们:


以下是JSFIDLE:

为您提供的另一个选项:

var clone=$(“#项”).clone()//创建一个我们可以操纵的克隆
clone.find('pre')。after('\n')//在标记后插入新行
警报(clone.text())//看那警觉的荣耀


因为jQuery search match HtmleElement使用正则表达式,当正则表达式匹配内容时,首先删除“\r\n”,这样您就可以看到内容没有“\r\n”

,就像我不希望它们通过“\n”连接在一起一样,我希望它们像在javascript变量中按enter键一样连接在一起。。。如果这是合理的,则返回:“asdf”@maxhud
\n
称为字符,可以在许多语言中使用,包括c、javascript、python和许多其他语言,作为“就像按enter键一样”的表示形式。编辑了我的答案,其中有一个链接指向一个JSFIDLE和工作解决方案。@maxhud请检查我的答案和演示我认为这并不能回答问题。
var text = $("#item pre").map(function(){
    return $(this).text();
}).get().join('\n');
var clone = $("#item").clone(); //create a clone we can manipulate
clone.find('pre').after('\n');  //stick new lines in after <pre> tags
alert(clone.text());            //behold the alert glory
var text = '';
$("#item pre").map(function(i, el) {
    return $(el).text().replace(/\s/g, '')
}).each(function(i, val) {
    if (i == 0) 
        text += val.concat('\n\t');
    else
        text += val.concat('\n');
});