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