2010-04-26 37 views

回答

5

這裏是我的想法:

function removeText(element){ 
    var newElement = $('<' + element[0].nodeName + '/>'); 
    element.children().each(function(){ 
     newElement.append(this); 
    }); 
    element.replaceWith(newElement); 
} 
+3

function stripText(element){ \t \t var item = element [0]; \t \t var newElement = $('<'+ item.nodeName +'/>'); \t \t爲(I = 0; I Mandrake 2012-05-31 21:01:45

+0

+1 Mandrake的解決方案解決了元素屬性被刪除的問題。 – 2013-04-10 01:16:42

-8
$('#someElement').text(''); 
+1

是U確定嗎?它也消除了孩子們。也許是因爲我用jquery 1.2.3 – aneuryzm 2010-04-26 19:46:47

+1

這個刪除了1.4.2中的所有孩子以及 – Rudism 2010-04-26 20:52:00

+0

Rudism是正確的。它可以消除包括孩子在內的所有元素。 – Davis 2013-10-02 15:55:20

-4

你不能做that.Unless它是由一個元素包裹着。

6

這個工作對我來說:

$(elem).html($(elem).html().replace($(elem).text(),'')); 

此設置沒有文字內容的HTML內容,這意味着ELEM內部的任何HTML標記將被繼續使用,無需變化。

前:

<div>Hello<input type="text" name="username" value="world!"/></div> 

後:

<div><input type="text" name="username" value="world!"/></div> 

再見

+2

請添加一些解釋。 – 2012-11-21 22:20:08

+1

這裏有一些問題:1)使用像replace這樣的字符串函數編輯HTML會破壞標記(例如,如果文本是''或'''),2)與文本匹配的任何內容都被替換(例如,如果文本是'用戶',那麼名稱屬性將改變),3)如果文本分散在孩子之間將不起作用(例如「

Hello
World
」) – Warbo 2014-06-20 12:51:58

39

最佳輕鬆地解決某些DIV刪除所有文字元素是

$("#firstDiv").contents().filter(function(){ 
    return (this.nodeType == 3); 
}).remove(); 
+3

優秀的解決方案。適用於我。 – jwinn 2014-02-13 02:16:26