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的代码给了我们很多灵感。。。