2010-08-06 45 views

Trả lời

67

này nên làm như lừa:

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

có vẻ như là câu trả lời tuyệt vời nhưng bạn có thể giải thích công việc xung quanh không? loại nút === 3 là gì? – Suresh

+1

@eirenaios https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType –

3

Bạn có thể làm điều đó với dom đơn giản:

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]); 
    } 
+0

this 'div.removeChild (div);' có vẻ không đúng! – jigfox

+0

Xin lỗi, đã cập nhật ... – mck89

2

Cách đơn giản nhất sẽ là một cái gì đó như thế này:

$('#div').html($('<div>').append($('*', '#div')).html()); 
-6
$('#yourDiv').text(''); 

Thao tác này sẽ xóa nội dung văn bản của bạn

+2

Phương pháp này loại bỏ mọi thứ kể cả các phần tử con. Nó không chính xác. – Davis

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

này sẽ loại bỏ nội dung văn bản của bạn

+2

Không, nó sẽ xóa mọi thứ bên trong div. – StinkyCat

+0

Tôi đến cuối chương trình, nhưng tại sao Krish lại nhận được -1 cho điều này và Gary nhận được +1. – snowYetis

2

Vâng điều này có lẽ sẽ không thể là cách tốt nhất nhưng tôi đã lưu div trong một biến và sau đó sau khi tôi loại bỏ tất cả các nội dung trong thẻ i dùng append:

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

Giả sử cấu trúc HTML sau:

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

bạn có thể đạt được hành vi mong muốn của bạn bằng cách sử dụng mã JavaScript + jQuery 2.1 sau đây:

$('.element-to-clean').html($('.element-to-clean').children()); 
Các vấn đề liên quan