我正在尝试解析一些写得不好的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的文本。建议?
感谢。
答案 0 :(得分:2)
我会使用方便的数组方法:Array.prototype.filter
- 仅获取文本节点,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]);
&#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;