Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从PrototypeJS中的元素获取纯文本?_Javascript_Prototypejs - Fatal编程技术网

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

Javascript 如何从PrototypeJS中的元素获取纯文本?,javascript,prototypejs,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><

如何从元素中获取纯文本

<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
带有空格。

它不是很漂亮,但很有效。我不知道你想要实现什么,但你做到了:

var f = $('summary_header').innerHTML.strip().stripTags().replace(/\n/g,'').replace(/\s{2}/g,'');

如果你需要一种方法,没问题。这就是javascript的美妙之处,也是它的原型继承

Prototype.js允许您使用新方法扩展元素对象。 只需将此添加到脚本中:

Element.addMethods({
    getText: function(element) {
        element = $(element);
        return element.innerHTML.strip().stripTags().replace(/\n/g,' ').replace(/\s+/g,' ');
    }
});
这与@koko建议的几乎相同,但我建议将每一个新行字符
\n
改为一个空格,而不是将它们删除,并将任意数量的连续带E空格字符改为单个空格。这与浏览器的行为类似

在加载prototype.js后,将其添加到脚本时,可以使用新方法获取纯文本:


var plainText=$('summary_header')。getText()

它们是prototypeJs中的任意方法,比如jQuery text()方法。我需要jQuery中的text()方法来获取元素中的纯文本。与PrototypeJS中的方法相同,在
stripTags
之后使用
strip
是有意义的,因为这些标记中可能有多余的空格,并且两个正则表达式可以折叠为一个:
/[\n\s]+/g
对,两个注释都是sesne。谢谢koko的代码给了我们很多灵感。。。