2017-05-25 48 views
0

我寫了一個div,並設置contenteditable爲true,因此它可以編輯。如何清空這個div?

<div id="editor" contenteditable="true"></div> 

開始我寫的東西在裏面,如「你好」 打開我看到的代碼更改爲

<div id="editor" contenteditable="true">hello</div> 

控制檯,但是當我清除了的話,我在這個div已經輸入輸入東西在它新的,我再次看到了控制檯,代碼是這樣的:

<div id="editor" contenteditable="true"> 
    "hello" 
    "" 
</div> 

而且我刪除次數爲""出現。

檢測DOMNodeRemoved,但它不工作時,我一直在努力,$("#editor").empty() ....

我怎樣才能清空這個div?

+1

優良的工作做的事:http://jsfiddle.net/57524/13/ –

+0

它的實際工作。你有使用其他擴展包裹你的div嗎? – wdetac

回答

0

只需使用下面的代碼來清空你的div容器:

$("#editor").text('') 

下面是示例代碼,清除容器爲您提供:

$('.clear').click(function(){ 
 
    $('#editor').text('') 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="editor" contenteditable="true"> 
 
    "hello" 
 
    "" 
 
</div> 
 
<button class="clear">clear</button>

+1

我也試過了 – AQingC

+0

@dfsq - 想了解,上面的示例代碼如何不適合你? –

+0

我知道了,謝謝你! – AQingC

0

很簡單

$('#editor').html(''); 

jQuery('#editor').html(''); 

試試這個

+0

.empty()方法不僅可以刪除子元素(和其他後代)元素,還可以刪除匹配元素集合中的任何文本。這是因爲,根據DOM規範,元素內的任何文本字符串都被視爲該元素的子節點。 –

+0

檢查你的jQuery版本 –

0

.html('')將工作你的情況。 $('#editor').html('');

要監聽的變化,我們可以使用:

$("#editor").on('DOMNodeRemoved', function(e) { 
    console.log(e.target, ' => removed'); 
}); 

見例如:

setTimeout(function() { 
 
$('#editor').html(''); 
 
}, 1000); 
 

 
$("#editor").on('DOMNodeRemoved', function(e) { 
 
    console.log(e.target, ' => removed'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="editor" contenteditable="true"> 
 
    "hello" 
 
    "" 
 
</div>

0

做這樣的事情

$("#editor").text(""); - If this selector is a label 
$("#editor").val(""); - If this selector is a input control 

同一開頭您可以爲多個使用類名

$(".editorClass").text(""); 
$(".editorClass").val("");