@good_beginer

Как удалять записи из html таблицы, созданную динамически (js)?

$.each(data, function (index, value) {
                            $('#tab').append("<tr class='text-left'>");
                            $('#tab').append("<td style='padding: 10px;'>" + value['id'] + "</td>");
                            $('#tab').append("<td style='padding: 10px;'>" + value['data'] + "</td>");
                            $('#tab').append("<td style='padding: 10px;'>" + value['text'] + "</td>");
                            $('#tab').append("<td class='padding'><button  data-index='"+index+"' data-id='"+value['id']+"'>X</button></td>");
                            $('#tab').append("</tr>");
                        });


не работает ни в какую,
ни так
document.getElementById("tab").deleteRow(2);
ни так
$('tr').eq(0).remove();
Думаю проблема в том что у таблицы как таковой , нет
html кода, ведь то чт написанно на html удаляется.
Как можно по другому?
  • Вопрос задан
  • 853 просмотра
Пригласить эксперта
Ответы на вопрос 4
@modeusweb
front-end developer
Сделайте обработчик типа такого:

$('body').on('click', 'element', function(events){
	$('#tab').find('tr').eq(0).remove();
});
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега JavaScript
{PHP, MySql, HTML, JS, CSS} developer
да че там такого то?
по клику на кнопку удаляем строку
$(document).on('click','button',function(){
$(this).closest('tr').remove();
})


PS: У вас не работает так как хтмл таблицы строится неправильно, поправьте метод создания строк таблицы.
Ответ написан
Комментировать
FeST1VaL
@FeST1VaL
Тихий
Если я правильно понял

1. Как вариант...
у вас же id уникальные? так добавьте еще атрибут id

Вместо
$('#tab').append("<tr class='text-left'>");

Это:
$('#tab').append("<tr class='text-left' id='item-'+value['id']+'>");


и удаляйте уже по полученному data-id... т.е (в идеале кнопке дать class)

$(document).on('click', 'button', function() {
 var id = $(this).attr('data-id');
 $('#item-'+id).remove();
});


ИЛИ

2. Вариант
jsfiddle.net/fest1val/8b90rjxn

$(document).on('click', 'button', function() {
 $(this).parent().parent().remove();
});
Ответ написан
Комментировать
VeroLom
@VeroLom
Веб-разработчик, фрилансер, UMI.CMS
Для начала поправьте добавление строк. Каждый .append() добавляет узел к дереву, а не HTML.

Что-то типа:
$('#row').append('
    <tr>\
        <td>column</td>\
        <td>column</td>\
        <td>column</td>\
    </td>'
);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы