2016-11-29 104 views
1

我已经folllowing funtion:当用户提交使用输入框ID为= Membership_c_tel数据如何删除li元素

function addPhone() 
    { 
     var value= $('#Membership_c_tel').val(); 

     $.ajax({ 
      url: '/cabinet/membership/addPhone', 
      type: 'POST', 
      cache: false, 
      data: {'val':value}, 
      beforeSend: function() { 
      }, 
      success: function (r) { 
       var val=document.getElementById("Membership_c_tel").value; 
       $("#newly_create_tel").append("<li class="+val+">"+document.getElementById("Membership_c_tel").value+"<a href='#' class=''>x</a></li>"); 
       $('#Membership_c_tel').val(''); 


      }, 
      error: function (e) { 
       console.log(e); 
      } 
     }); 

    } 

的功能是负责添加<li><ul id="newly_create_tel ">。同时<a href="#">x</a>也加上<li>。问题是我不知道如何在x按下时删除特定的<li>元素。我怎样才能达到它?帮我。

$('#newly_create_tel li a').click(function(event){ 
        event.preventDefault(); 

       }); 
+0

@prasad:这将删除所有。点击事件中的this.parentNode是一个男人想要删除的东西。 – Lain

+0

检查这个http://stackoverflow.com/questions/17323293/removing-a-dynamically-created-li-from-ul – nmanikiran

+0

添加这是你的点击函数中'$(本).parent()删除();' – four

回答

6

您需要使用event delegation因为它是动态生成的,并使用parent()closest()方法得到li

$('#newly_create_tel').on('click', 'li a', function(event){ 
    event.preventDefault(); 
    $(this).parent().remove(); 
}); 
+0

为了防止相应稳固的缺失,我建议使用一个额外的特殊选择,而不是'在这里立了' –

+1

@FuXu:他可以用一个类来了'了'标签....像'delete' ..那会要好得多.....我想这个答案会给一个基本的想法:) –

0

尽量创造的li元素,并指定点击功能右后:

var $element = $('</li>).append($('#Membership_c_tel').val()); 
$element.append('<a/>', {href:'#', text:'x'}); 
$element.click(function(){ 
    // closests will be best if you plan to change your html inside li 
    $(this).closests('li').remove(); 
    return false; 
}); 
$element.appendTo($("#newly_create_tel")); 

您有更多的控制研究,你不要当你不使用任何事件真的需要它们

1

点击功能内写$(this).parent()。remove; 它为我工作