2016-11-29 3 views
1

Я folllowing Funtion:как удалить элемент 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 ">, когда пользователь представляет данные с помощью InputBox с идентификатором = Membership_c_tel. В то же время <a href="#">x</a> также добавляется с <li>. Проблема в том, что я не знаю, как удалить определенный элемент <li> при нажатии x. Как я могу достичь этого? Помоги мне.

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

       }); 
+0

@prasad: Это удалит все. this.parentNode в событии click - это то, что человек хочет удалить. – Lain

+0

проверьте это http://stackoverflow.com/questions/17323293/removing-a-dynamically-created-li-from-ul – nmanikiran

+0

добавьте это внутри своей функции щелчка '$ (this) .parent(). Remove();' – four

ответ

6

Вы должны использовать event delegation, поскольку она динамически и получить li с помощью parent() или closest() метод.

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

, чтобы предотвратить исключительное удаление, я предлагаю использовать специальный специальный селектор, а не 'li a' здесь –

+1

@FuXu: он может использовать класс в теге' a' .... что-то вроде 'delete' .., что быть намного лучше ..... Я думаю, что этот ответ дал бы основную идею :) –

0

Try создать 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

внутри функции мыши write $ (this) .parent(). remove; это сработало для меня

Смежные вопросы