如何从元素中获取纯文本?
<div id="summary_header">
<span class="heading" style="margin-left: 210px;">This is first line</span><br/>
<span style="margin-left: 260px;"><b> You are in second line</b></span><br/>
</div>
从此div
标记获取纯文本的方法是什么?我希望得到纯文本“这是你在第二行的第一行”。
$('summary_header').textContent
给出了空格。
答案 0 :(得分:4)
如果你需要一种方法,没问题。这就是javascript之美,也是原型继承。
Prototype.js允许您使用新方法扩展Element对象。 只需将其添加到您的脚本中:
Element.addMethods({
getText: function(element) {
element = $(element);
return element.innerHTML.strip().stripTags().replace(/\n/g,' ').replace(/\s+/g,' ');
}
});
这与@koko提议的几乎相同,但我建议将每个新行字符\n
更改为一个空格而不是删除它们,并将任意数量的连续空格字符更改为单个空格。这与浏览器的行为类似。
当您使用脚本时,在prototype.js加载之后,您可以使用新方法获取纯文本:
var plainText = $('summary_header')。getText();
答案 1 :(得分:2)
它不是很漂亮,但它有效。我不知道你想要实现什么,但是你去了:
var f = $('summary_header').innerHTML.strip().stripTags().replace(/\n/g,'').replace(/\s{2}/g,'');