如何从PrototypeJS中的元素中获取纯文本?

时间:2011-01-20 08:29:15

标签: javascript prototypejs

如何从元素中获取纯文本?

<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给出了空格。

2 个答案:

答案 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,'');

http://jsfiddle.net/e8uFS/1/