В вашем коде есть две проблемы. Во-первых, HTML, который вы пытаетесь добавить, недействителен. <tr>
элементы не могут содержать текстовые узлы. Вам нужно обернуть содержимое в td
или th
.
Во-вторых, append()
будет помещать новый tr
в существующий tr
, что опять-таки недопустимо HTML. Учитывая вашу цель, используйте before()
.
Также обратите внимание, что, поскольку новый контент одинаков во всех случаях, each()
l oop здесь не требуется. jQuery неявно l oop над коллекцией и создаст контент для каждого выбранного элемента для вас. Попробуйте это:
jQuery(function($) {
$('table tr.customRow').before('<tr><td>New Test Row</td></tr>');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr class="customRow">
<td>My Row 1</td>
</tr>
<tr class="customRow">
<td>My Row 2</td>
</tr>
<tr class="customRow">
<td>My Row 3</td>
</tr>
</table>