使用jQuery从包装集合中收集所有文本节点,用空格分隔

我正在寻找一种方法来收集jQuery包装集中的所有文本,但我需要在它们之间没有文本节点的兄弟节点之间创建空格。

例如,考虑这个HTML:

  • List item #1.
  • List item #2.
  • List item #3.

如果我只是使用jQuery的text()方法来收集

的文本内容,就像这样:

 var $div = $('div'), text = $div.text().trim(); alert(text); 

产生以下文字:

列表项#1。列表项#2。列表项#3。

因为每个

  • 元素之间没有空格。 我真正想要的是这个(注意每个句子之间的单一空格):

    列出项目#1。 列出项目#3。 列出项目#3。

    这告诉我,我需要遍历包装集中的DOM节点,将每个文本附加到字符串,然后是空格。 我尝试了以下代码:

     var $div = $('div'), text = ''; $div.find('*').each(function() { text += $(this).text().trim() + ' '; }); alert(text); 

    但这产生了以下文字:

    这是列表项#1。这是列表项#2。这是列表项#3。 这是列表项#1。 这是列表项#2。 这是列表项#3。

    我假设这是因为我正在遍历

    每个后代并附加文本,所以我在