单击时附加和删除元素

时间:2012-09-13 20:42:04

标签: jquery dom

我试图通过点击添加和删除div。 我成功添加了它,但无法找出删除部分。

  • +问题:是否使用DOM中的.remove()完全删除了元素?

HTML:

<center>
<a href='#' id='gogo'>Add</a>
<div id='sexy'></div>
</center>

jQuery的:

var extra="<div class='bass'><a href='#' class='gaga'>Remove</a></div>";

$('#gogo').on('click', function(){


    $('#sexy').append(extra);



});

$('.gaga').on('click', function(){


    $(this).parent().remove();



});

的jsfiddle: http://jsfiddle.net/Vmhe2/1/

5 个答案:

答案 0 :(得分:2)

这应该有帮助

$('#gogo').on('click', function(){

    $('#sexy').append(extra);

    $('.gaga').on('click', function() {
         $(this).parent().remove();
    });

});

我在追加额外的div后立即移动了删除功能

答案 1 :(得分:1)

是的,该元素已完全从DOM中删除。

答案 2 :(得分:1)

是的,.remove()将从DOM树中完全删除该元素。


但是,您的删除代码应如下所示:

$('#sexy').on('click', '.gaga', function(e){ 
    e.preventDefault();  // as .gaga is anchor, so use preventDefault() 
                         // to stop default page load of browser
    $(this).parent().remove();
});

当您动态添加.gaga时,您需要委托事件处理,并且可以使用 .on() 方法执行此操作。

Working sample


注意

委托事件(又名实时).on()语法为:

$(StatciParent).on(eventName, target, handlerFunction);

其中,StaticParent指的是target元素的父元素,它不是动态的,target是您需要绑定事件的元素。

答案 3 :(得分:1)

注册事件处理程序时,DOM元素必须存在。如果要动态绑定,请使用delegate():http://api.jquery.com/delegate/

答案 4 :(得分:1)

http://jsfiddle.net/Vmhe2/49/

试试这个:)