2012-09-15 32 views
0

我有一个表格上的div:明确格的内容,但保留纯文本,使用jQuery

<div id="foo"> 
<div>koko</div> 
<div>lala</div> 
Plain text here 
<div>Another div</div> 
</div> 

我想使用jquery,以保持“这里纯文本”,但没有显示在任何其他内部元件其他divs。

我尝试使用.not这样的:

alert($("#foo).not("div").text()); 

但它并不显示任何内容。

+2

隐藏id =“foo”div内的所有div,你剩下的就是文本。 –

+0

我想用JavaScript处理文本。不仅在页面中显示它。所以我必须从结果中删除div。 –

回答

2

如果你只是想删除行文本,也许这将工作:

 
$("#foo *").remove(); 

我误解你的问题?

3

所有你需要做的是:

$('#foo *').remove();​​​​​​​​​ 

选择器选择#foo内的任何元素,只有你寻找将被保留文本。

DEMO

1

试试这个:

alert($("div#foo").clone().children().remove().end().text()); 

希望这将帮助!

0

获取纯文本的另一种方法是使用这些jQuery方法 - > contents()和filter()。

内容[source: doc]

说明:获取每个元素的孩子在一组匹配的 元素,包括文本和评论节点

因此,我们可以同时获得DIV和#text节点。

滤波器[source: doc]

减少匹配元素的那些选择匹配或 传递函数的测试这一点。

在函数测试中,我们只保留我们想要的,文本节点(与nodeType == 3,这是文本)。 所以,在最后,我们有:

$("#foo").contents().filter(function(){ return this.nodeType == 3}).text().trim(); 

(修剪()在这里你的样品中没有选择所有的换行,因为他们的文字太)

demo js fiddle

相关问题