开发者

How to get plain text from an element in PrototypeJS?

开发者 https://www.devze.com 2023-02-05 11:22 出处:网络
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/>

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/

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号