删除元素前的元素和内容

时间:2010-06-01 00:16:32

标签: jquery forms

我正在尝试删除元素和内容 当用户单击按钮时,在div内部的链接之前。 最好的方法是什么?

<div id="dialog" class="window">  

         //will be inserted a <select> element and few text here 
         //but I want to clear them after the user click a button

    <a href="#" class="close">Close it</a>  // I want to keep this <a> link.    

    </div>  

我的Jquery

$('.model').click(function(e) {  

   $("#dialog").empty();  //I can't use this because <a> will be deleted. Any better ideas?         

});

感谢您的回复......

4 个答案:

答案 0 :(得分:5)

将所有这些元素包装在div中并将其删除

$('#select-wrapper').remove();

或者做得更友好一点

$('#select-wrapper').fadeOut(500, function() { $(this).remove(); });

答案 1 :(得分:1)

尝试将您要删除的内容放在自己的div中。然后,在点击事件中隐藏/删除div将是简单的jquery。

答案 2 :(得分:1)

你可以这样做:

$('.model').click(function(e) {  
  $("#dialog").children(":not(.close)").remove();
});

这会删除使用.remove()但没有close类的所有孩子。或者只是使用.clone()克隆并重新添加链接,如下所示:

$('.model').click(function(e) {  
  $("#dialog a.close").clone(true).appendTo($("#dialog").empty());
});

答案 3 :(得分:1)

你真的想保留那个a链接吗,或者你只是想让那个div包含一个之后看起来像它的链接?

为什么不用<a href="#" class="close">Close it</a>覆盖innerHTML?

据我所知,如果该链接在某种程度上已经超出您的知识或控制范围而发生变化,那么您必须保留它,但除非是这种情况,否则就会有相似之处。