在元素之间包含空格的jQuery文本()的替代方法?

Alternative to jQuery text() that includes spaces between elements?(在元素之间包含空格的jQuery文本()的替代方法?)

本文介绍了在元素之间包含空格的jQuery文本()的替代方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在容器中有一些任意的正文文本。我不能控制它,所以我不知道它的结构。但应该是这样的:

<div id='content-area'>
  <h1>Heading</h1>
  <p>A paragraph or two</p>
  <ul>
    <li>item 1</li>
    <li>item 2</li>
  </ul>
</div>

这只是一个简单的示例,实际上它可以包含更多的项和嵌套的东西,如表。

我想取出所有文本并对使用的单词进行一些处理。我正在使用以下jQuery获取文本。

$('#content-area').text()
// HeadingA paragraph or twoitem 1item 2

问题是每个标记项之间没有空格。documentation表示:

由于不同浏览器中的HTML解析器不同,返回的文本可能在换行符和其他空格中有所不同。

我的所有搜索似乎都会弹出删除空白的结果。有没有办法拉出所有文本并保留元素之间的空间?需要在浏览器中进行,以便使用类似于Java脚本的方法。

推荐答案

如果嵌套结构未知,您可以向每个元素添加空格

https://jsfiddle.net/3y2yLexv/1/

$( "*" ).each(function( index ) {
   $( this ).append(' ');
});

var str = $('#content-area').text();
//Of course you have to trim duplicated blank spaces.
str = str.replace(/ss+/g, ' ');
$('#new').text(str);

这篇关于在元素之间包含空格的jQuery文本()的替代方法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在元素之间包含空格的jQuery文本()的替代方法?

基础教程推荐