2012-11-20 154 views
0

我想從2個div元素中刪除內容而不刪除div本身。從div元素中刪除內容

<div id='test'> 

content I want to remove 

    <div id='childDiv'> 

     content I want to remove 

    </div> 

</div> 

我想保留childDiv和測試div但刪除它們的內容。我怎麼做?

$('#test').empty()也會刪除childDiv

回答

3

如何存儲childDiv然後清空父母,然後把內心的孩子放回去?

$('#test').html($('#childDiv').html()) // didn't quite work 

// this clears both divs and leaves only the structure 
$('#test').html($('#childDiv').html("")); 

js不知道,用chrome檢查產生的黑線,檢查。 http://jsfiddle.net/tbspn/

+0

@Adam。這可能會爲當前結構工作。但如果它有多個div嵌套.. –

+0

@Sushanth那麼這是一個什麼不同問題與適當的不同,可能更復雜的答案,而不是OP所要求的。 –

0
$('#test').html(''); 

也清除所有內部標記。

+0

他在他的問題中表示他不想清空孩子div。 –

+0

@Dylan:你確定? – johnyTee

+0

@Dylan:你的權利,忘記了。 – jaudette

0

這應該工作:

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

$('#childDiv').text(''); 
1

使用.contents().filter()功能將它們過濾掉..

$('div').each(function() { 
    $(this).contents().filter(function() { 
     return this.nodeType != 1 
    }).remove(); 
});​ 

Check Fiddle

Extra Nesting

return this.nodeType != 1將選擇所有的非元素類型節點,並從DOM中刪除它們。

1

這裏是JavaScript的方式來做到這一點:

document.getElementById('test').innerHTML = ''; 
document.getElementById('childDiv').innerHTML = '';