2010-08-10 55 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()来避免潜在的内存泄漏。