2015-05-21 2 views
0

У меня есть список телефонов, которые отображаются как ul li. Когда пользователь нажимает кнопку «покупать», он создает новую лицу, в другой div «ordersDiv» пользователь может удалить свою покупку из корзины, нажав «Удалить». И это должно удалить li с совпадающим идентификатором. код, который создает покупку:Удаление элементов по идентификатору с использованием события Javascript динамически

$("#list").delegate("button",'click',function(){ 
     var purchase = {id: null,name: null,price: null }; 
    var purchases = []; 
    for(var i = 0; i < phones.length; i++){ 
     if(this.id === phones[i].id){ 
      purchase.id = phones[i].id; 
      purchase.name = phones[i].name; 
      purchase.price = phones[i].price; 
      //break; 
      purchases.push(purchase); 
      console.log(purchases); 
      $.each(purchases, function(i, purchase){ 
       purchases.push("<li id='"+ purchase.id +"'>" + purchase.id + 
       "<br>" + purchase.name + "<br>" + "Price:" +purchase.price + "<br><button id='"+purchase.id+"' type='button' class='btn-default'>remove</button>" +"</li>"); 

      }); 
      $('#ordersUl').append(purchases); 
     } 
    } 
}); 

код, который должен удалить Ли:

$("#ordersCartDiv #ordersUl").delegate("button","click", function() { 
    var buttonId = $(this).attr('id'); 
    console.log(buttonId); 
    //$("li[id=buttonId]").remove(); 
    $("#ordersUl").remove(buttonId); 
    console.log("test"); // code indentation 

}); 

Проблема заключается в том, что этот код ничего не удаляет.

+0

Можете ли вы сделать скрипку своего кода? – Rayon

+0

Какую версию jQuery вы используете? Если это последний, то «делегировать» было лишено использования «on» вместо этого. – Arbind

+1

У вас есть те же идентификаторы. Это неверно. –

ответ

2

Используйте remove на кнопку ID.

$("# " + buttonId).remove(); 

Нет необходимости использовать ordersUl поскольку id является уникальным (?).

Если у вас нет id уникальный:

$("#ordersUl #" + buttonId).remove(); // Will remove button inside #ordersUl 

Удалить набор соответствующих элементов из DOM.

Docs: http://api.jquery.com/remove/

3

вы должны пройти селектор в функции удалить, например:

$("#ordersUl").remove('#'+buttonId); 
1

Вы должны вызвать remove функцию элемента

$("li#"+buttonId).remove(); 

Но ID должен быть уникальным, так что это плохая идея, чтобы использовать его таким образом. Используйте атрибуты или классы data-.

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