0

我试图通过单击添加和删除 div。我成功添加了它,但无法弄清楚删除部分。

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

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/

4

5 回答 5

2

这应该有帮助

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

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

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

});

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

于 2012-09-13T20:50:00.350 回答
1

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

于 2012-09-13T20:43:34.247 回答
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()方法来完成。

工作样本


笔记

.on()代表事件(又名现场)的语法是:

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

其中,StaticParenttarget非动态元素的父元素,是target您需要绑定事件的元素。

于 2012-09-13T20:43:52.897 回答
1

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

于 2012-09-13T20:44:59.143 回答
1

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

试试这个 :)

于 2012-09-13T21:01:27.257 回答