阅读标签之间的文本

时间:2015-02-28 14:31:16

标签: javascript dom

我正在尝试解析一些写得不好的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>

基本上,文本是在成对的标签之间。我试图只获得&#34;让我们把文字放在这里&#34;和#34;而且这里也是!&#34;使用JavaScript的文本。建议?

感谢。

1 个答案:

答案 0 :(得分:2)

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

&#13;
&#13;
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]);
&#13;
<div>
   <span>stuff</span>
   Lets just put text here
   <span>more stuff</span>
   And here too!!!
   <span id="cool">even more stuff</span>
</div>
&#13;
&#13;
&#13;