Получение данных с определенной ячейки в таблице с помощь jQuery
Всем привет!
Есть скрипт:
$(".odpowiedzButton").click(function(){
var wiersz = $('<tr class="removeOdpowiedz"></tr>');
var komorka = $('<td colspan="4" class="plabel"></td>');
var row = $(this).parent().parent();
$("tr").remove(".removeOdpowiedz");
wiersz.append(komorka);
komorka = row.children()[2].text();
$(this).parent().parent().parent().after(wiersz);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table width="100%" style="margin: auto;">
<thead>
<tr>
<th>Дата</th>
<th>От</th>
<th>Заглавие</th>
</tr>
</thead>
<tbody>
<tr data-id="3" style="height: 30px;">
<td>2021-06-02 16:46:47</td>
<td>Имя</td>
<td class="cursor-pointer">Красивое заглавие</td>
<td><button class="odpowiedzButton buttonmoon">Ответить</button></td>
</tr>
</tbody>
</table>
Вот в чем проблема:
я пытаюсь в следующей строке, после строки "<tr data-id="3" style="height: 30px;">...</tr>"
вывести данные из второй ячейки в строке - <tr data-id="3" style="height: 30px;">...</tr>
то есть в той же самой строке.
И вот какую ошибку выбивает в консоли браузера:
'Uncaught TypeError: row.children(...)[2].text is not a function'
Буду благодарен за любые подсказки, заранее спасибо : )
Ответы (1 шт):
Автор решения: InDevX
→ Ссылка
$(".odpowiedzButton").click(function(){
//текущий "нажатый" tr
let row = $(this).closest('tr');
// создаём новый эл-т tr
let wiersz = document.createElement('tr');
// добавляем созданной tr класс
wiersz.classList.add('removeOdpowiedz');
// создаём эл-т td
let komorka = document.createElement('td');
// для td - добавляем атрибут colspan = 4
komorka.setAttribute('colspan', 4);
// для td - добавляем класс plabel
komorka.classList.add('plabel');
// записываем в td текст 2й ячейки нажатого tr
komorka.innerText = row.find('td:nth-child(2)').text();
// добавляем td внутрь tr
wiersz.append(komorka);
// добавляем tr в конец body
row.closest('body').append(wiersz);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table width="100%" style="margin: auto;">
<thead>
<tr>
<th>Дата</th>
<th>От</th>
<th>Заглавие</th>
</tr>
</thead>
<tbody>
<tr data-id="3" style="height: 30px;">
<td>2021-06-02 16:46:47</td>
<td>Имя</td>
<td class="cursor-pointer">Красивое заглавие</td>
<td><button class="odpowiedzButton buttonmoon">Ответить</button></td>
</tr>
</tbody>
</table>