Почему я не могу получить динамическое текстовое значение до тех пор, пока не будет создано другое значение? - PullRequest
0 голосов
/ 12 апреля 2019

Я динамически создаю строки таблицы с помощью jQuery и присваиваю каждой из них идентификатор данных, как показано ниже:

var education_row_counter = 0;

$("#addButton").on('click', function() {
  var row = '<tr data-id="' + education_row_counter + '" >' +
    '<td><input type="text" class="form-control" data-id="' + education_row_counter + '" name="name" id="name"></td>' +
    '<td><input type="text" class="form-control" name="department" id="department"></td>' +
    '<td><input type="text" class="form-control" name="phone" id="phone"></td>' +
    '<td>' + 'arash' + '</td>' +
    '</tr>';
  $("#eduTable").append(row);
  $("#eduTable").append('<div style="display:none"></div>');

  education_row_counter++;
});

Однако, когда я хочу получить идентификатор данных с помощью этой команды: $("#eduTable :nth-child(2)").data('id') в консоли возвращается неопределенное значение, но когда я нажимаю на новую и в таблицу добавляется еще одна строка, я не могу получить идентификатор данных, используя тот же код.кто-то может сказать мне, что это проблема?пожалуйста * * 1005

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Вы можете использовать last() метод или :last селектор и цель <tr>, поскольку в браузере может быть создано <tbody>, которое будет фактическим потомком <table>

.вам также придется постоянно корректировать nth-child(n) при изменении длины строки

$("#eduTable tr:last").data('id')
0 голосов
/ 12 апреля 2019

Я только что решил эту проблему, написав такой код: $("#eduTable tr:nth-child(n)").data('id');, который (n) - номер строки таблицы

...