How to get plain text from an element in PrototypeJS?
How can I get plain text from an element?
<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>
What's the way to get plain text from this div
tag? I want to get plain text as "This is first line You are in second line".
$('summary_header').textContent
gives with white spaces.
If you need a method, no problem. That is the beauty of javascript and it's prototypal inheritance.
Prototype.js allows you to extend the Element object with new methods. Just add this to your scripts:
Element.addMethods({
getText: function(element) {
element = $(element);
return element.innerHTML.strip().stripTags().replace(/\n/g,' ').replace(/\s+/g,' ');
}
});
That is almost the same as @koko proposed, but I suggest changing each new line character \n
to one space instead of removing them, and changing any number of consecutive withe-space characters to single space. This is similar behavior to what browsers do.
When you at that to your scripts, after the prototype.js loads, you can use new method to get plain text:
var plainText = $('summary_header').getText();
It's not very beautiful, but it works. I don't know what you're trying to achieve, but there you go:
var f = $('summary_header').innerHTML.strip().stripTags().replace(/\n/g,'').replace(/\s{2}/g,'');
http://jsfiddle.net/e8uFS/1/
精彩评论