阅读标签之间的文本
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>
我正在尝试解析一些遵循以下结构的写得不好的 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>