jquery remove()问题

时间:2011-08-03 17:16:47

标签: jquery

HERE !!! http://jsfiddle.net/y5gbg/ 当我输入内容时,它应该附加一个圆形div和文本。当我点击这个圆形div时,它应该被删除。 这是jquery代码:

$(document).ready(function(){


    $("button").click(function(){
     var str;
     str = $('input').val();
     var sth;
     sth = '<div id="'+str+'"><div class="btn" alt="'+str+'"></div><p>'+str+'</p><hr></div>';
     $("#contents").append(sth);
    });

    $('.btn').click(function(){
      var id;
      id = $(this).attr('alt');
      $('#'+id).remove();    
    });

});

但它不起作用。有人能告诉我为什么吗? 另外一件事,这里怎么做换行? 感谢!!!

5 个答案:

答案 0 :(得分:4)

你只需要使用实时功能

$('.btn').live('click', function(){
  var id;
  id = $(this).attr('alt');
  $('#'+id).remove();    
});

因为您正在动态地将div添加到dom中,因此点击不会注册到div

Here's an example of it working.

答案 1 :(得分:1)

如果您只需要删除该按钮,那么您的代码将是:

$('.btn').live("click", function(){
   $(this).remove();    
});

而不是您目前为$('.btn')...

所拥有的内容

答案 2 :(得分:0)

您可以尝试$('#'+id).hide();

答案 3 :(得分:0)

您需要使用live()

这是您更新的jsFiddle

答案 4 :(得分:0)

您需要将live函数用于第二个函数

$('.btn').live('click',function(){
  var id;
  id = $(this).attr('alt');
  $('#'+id).remove();    
});