Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在使用$(';body';).text()时在元素之间添加空格?_Javascript_Html_Jquery - Fatal编程技术网

Javascript 如何在使用$(';body';).text()时在元素之间添加空格?

Javascript 如何在使用$(';body';).text()时在元素之间添加空格?,javascript,html,jquery,Javascript,Html,Jquery,例如,如果我创建一个包含以下内容的页面: <body> <p> ABC DEF<p>GHI</p> JKL<br>MNO </p> </body> 但是当我现在使用$('body').text()时,我得到了: ABC DEFGHI JKLMNO 是否可以在元素之间添加空白?那么“DEFGHI”和“JKLMNO”实际上是两个词而不是一个 此处是指向示例的链接。使用html()代替text(),然后用空格替换b

例如,如果我创建一个包含以下内容的页面:

<body>
<p>
ABC DEF<p>GHI</p>
JKL<br>MNO
</p>
</body>
但是当我现在使用
$('body').text()
时,我得到了:

ABC DEFGHI
JKLMNO
是否可以在元素之间添加空白?那么“DEFGHI”和“JKLMNO”实际上是两个词而不是一个

此处是指向示例的链接。

使用
html()
代替
text()
,然后用空格替换
br
p
标记

var text = $('body').html();
var str = text.replace( /<br\s*[\/]?>/gi, '\r\n'); // <br> to newline
var str2 = str.replace(/<\/?p[^>]*>/g, '\r\n'); // <p> to newline
var str3 = str2.replace(/  +/g, ' '); // multiple spaces to one

console.log(str3)
如果将替换为空空间
'
而不是
'\r\n'
,您将得到:

ABC DEF GHI 
JKL MNO
  • 这是第一个的一个例子
  • 这是第二个的一个例子

非常感谢您的回答。我也测试.html(),但例如“&”它返回“&;”。例如,“A&B”就是“A&;B’。所以我需要更换所有这些标志。或者有没有更简单的方法来保持“&”?基本上这不是一个好的实践。当您询问特定的两个标记时,您的问题包括一个有限的场景。对于这类任务,需要替换的一小组标记就可以了。如果不是这样的话,我建议使用
DOMParser
解析HTML,并使用选择器获取所需内容。好的,我明白了。非常感谢。
ABC DEF

GHI

JKL
MNO
ABC DEF GHI 
JKL MNO