阅读标签之间的文本

Reading Text Between Tags

我正在尝试解析一些遵循以下结构的写得不好的 HTML。

<div>
   <span>stuff</span>
   Lets just put text here
   <span>more stuff</span>
   And here too!!!
   <span id="cool">even more stuff</span>
</div>

本质上,文本位于标签对之间。我试图仅使用 JavaScript 获取 "Lets just put text here" 和 "And here too!!!" 文本。建议?

谢谢。

我会使用方便的数组方法:Array.prototype.filter - to get text nodes only, and Array.prototype.map 从这些节点获取文本值:

var div = document.querySelector('div');

var textNodes = [].slice.call(div.childNodes).filter(function(el) {
    return el.nodeType === 3 && el.nodeValue.trim();
});

var text = textNodes.map(function(node) {
    return node.nodeValue.trim();
});

alert("Text #1: " + text[0] + "\nText #2: " + text[1]);
<div>
   <span>stuff</span>
   Lets just put text here
   <span>more stuff</span>
   And here too!!!
   <span id="cool">even more stuff</span>
</div>