2013-06-18 149 views
0

如何使用html標籤獲取文本,但只能從主DIV獲取文本?不形成其他DIVS。通過jquery獲取來自主DIV的html標籤的文本?

這裏是例子,但有一些問題,becouse文字無需HTML標記< BR />

jsFiddle DEMO

HTML

<div id='parent'> 
    this text is <br />for parent 

    <div id='child-parent'> 
    this text if for child-parent 
     <div id='child'> 
     and this text is for child. 
     </div> 
    </div> 
</div> 

jQuery的

alert($('#parent').clone().children().remove().end().html()); 
+1

'$的.text()'返回沒有標籤的內容的字符串。 – Broxzier

+1

@Broxzier - 他想要那些標籤。 – tymeJV

+1

你能解釋一下你期望從這個例子中返回嗎? – Broxzier

回答

1

我更新了小提琴和使用不同的戰術,以除去最後一個元素

http://jsfiddle.net/F6AeM/1/

var parent = $('#parent').clone(); 
$(parent).find('#child-parent').remove(); 
alert($(parent).html()); 

不知道爲什麼這個工程,但你沒有,但在這裏你去。

+0

謝謝你,它工作正常:))但是有解決方案,如果這些ID將創建dinamicaly,並且如果將有更多的DIV刪除?這就是爲什麼我使用「**。clone()。children()。remove()。end()。html()**」 – Patrik

+1

如果它始終是div,則可以將選擇器更改爲「div」。就像在這個小提琴中一樣。 http://jsfiddle.net/F6AeM/4/這將刪除每個div不只是最後一個。 – Smeegs

1

假設child-parentchild將始終有一個id

var clone = $('#parent').clone(); 
clone.children().filter(function() { 
    return $(this).is('[id]'); 
}).remove(); 

console.log(clone.html()); 

演示--->http://jsfiddle.net/F6AeM/5/

+0

這實際上並不奏效,它不返回BR標記,它只是輸出一個換行符,它是中間節點的nodeValue。 – adeneo

+0

謝謝,它工作正常。有趣和簡單的解決方案。如果我想使用其他標籤進行文本格式化 - http://jsfiddle.net/ynternet/F6AeM/6/? – Patrik

+1

@Patrik參見這個演示' - >'http://jsfiddle.net/F6AeM/7/ –