2010-08-10 91 views
2

如何在append()或before()之後重置?請幫忙。提前謝謝了。jquery reset append()

if((#tag_id).text() == 'something'){ 
    $(#tag_id).before("x"); 
} 
// I want to reset the #tag_id to empty 
$(#tag_id).val(''); // this doesn't work 

回答

5

您的代碼示例使用.before()。在這種情況下,如果.before()被給定了圍繞x的元素而不僅僅是文本,那將會更好。

然後,你可以這樣做:

// Wrap the "x" that you're inserting with <span> tags 
$('#tag_id').before('<span>x</span>'); 

    // Use .prev() to reference the new <span> and remove it 
$('#tag_id').prev().remove('span');​​​​​​​​​ 

請記住,使用.before()不放置任何物品#tag_id,而是會將它#tag_id之前。

如果您的意思是內容爲裏面#tag_id但在開始時,您將使用.prepend()


如果您的代碼使用.append(),一種選擇是保留給你附加的元素的引用,並使用以後將其刪除。

var $appendElem = $('<div>some appended element</div>'); 

$appendElem.appendTo('#tag_id'); 

然後,您可以通過相同的參考刪除它。

$appendElem.remove(); 
// or 
$appendElem.detach(); 
0

這是你想要的嗎?

$("#tag_id").html(""); 
2

如果沒有處理程序,您可以使用.html()這樣的:

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

但是,如果有任何事件處理程序或數據中有任何對象,你應該使用.empty()代替,像這樣:

$('#tag_id').empty(); 

.html('')不會清理數據/事件處理程序在$.cache其中.empty().remove()會,如果你不確定,使用.empty()來避免潛在的內存泄漏。