jquery – 从一个div中只删除文本内容

是可以从一个div只删除文本内容,即保持所有其他元素不变,只删除直接在div内的文本?

这应该做的伎俩:

$('#YourDivId').contents().filter(function(){ return this.nodeType === 3; })​.remove();​ 

假设以下HTML结构:

 <div class="element-to-clean"> Content to be filtered out. <span class="element-to-leave-intact"> Content to be left inthe element. </span> </div> 

你可以通过使用下面的JavaScript + jQuery 2.1代码来实现你想要的行为:

 $('.element-to-clean').html($('.element-to-clean').children()); 

你可以用简单的dom来做到这一点:

 var div=$("div")[0]; if(div.childNodes.length) for(var i=0;i<div.childNodes.length;i++) { if(div.childNodes[i].nodeType===3) div.removeChild(div.childNodes[i]); } 

最简单的方法是这样的:

 $('#div').html($('<div>').append($('*', '#div')).html()); 

那么这可能不会是最好的办法,但我保存在一个variables的股利,然后我删除标签中的所有内容我用append:

 $('.wpcf7 form p').each(function(i){ var el = $(this).find('span'); if(i==4) el = $(this).find('input'); $(this).empty(); $(this).append(el); }); 
 $('#yourDiv').text(''); 

这将删除您的文字内容

 $('#yourDiv').text(''); 

这将删除您的文字内容