2011-05-06 137 views
2

我有這樣的HTML節點:如何抓住內容

<div id='parent'> 
    <a href="#">test</a> 
    Need this 
</div> 

如何獲得,如果我有手柄parent對象「需要這個」文字? 我試過類似:$('#parent').text(),但它也返回'測試'。


p.s. Nothing關於編輯html!我只是有這樣的內容,我需要解析它。

+4

爲什麼不將自己的文本包裹在段落標記或span標記中?然後嘗試獲取該文本會容易得多。 – 2011-05-06 19:53:55

+0

@尼克請看更新。 – Ockonal 2011-05-06 19:56:43

+0

.contents()的幫助頁面提供了一個「查找段落內所有文本節點並用粗體標記包裝它們」的示例。這可能會讓你開始走下正確的道路...... http://api.jquery.com/contents/我認爲這沒有足夠的實際上被認爲是「答案」... :-) – kshep 2011-05-06 19:57:08

回答

4

如果您知道該文本內容總是在div的最後內容,你可以這樣做:

$('#parent').contents().last().text(); 

這個標記:

<div id='parent'> 
    <a href="#">test</a> 
    Need this 
</div> 

Returns:需要此

樣品:http://jsfiddle.net/64RVf/

6
var temp = $('#parent').clone(); 
temp.children().remove(); 
alert(temp.text()); 

工作示例:http://jsfiddle.net/hunter/H6jQp/

+0

希望我能+10這只是爲了向我展示jsfiddle.net – kshep 2011-05-06 20:03:06

0

這應該這樣做:

$('a').click(function(){ 
    alert($(this).parent().clone().find('a').remove().end().text()); 
}); 

這裏有一個小提琴: http://jsfiddle.net/RTqyy/

可能不是最好的方式,我會包裹在文本一個div或跨度或p。但這會起作用。

0
var $text = $("#parent").contents().filter(function(){ return this.nodeType != 1; }); 
alert($text.text()); 

似乎要做的伎倆。 (jsFiddle