2012-09-15 34 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

相關問題