Подтвердить что ты не робот

Как добавить строки в таблицу с помощью jQuery?

Привет я пытался добавить строку в таблицу с помощью jQuery, но это не работает.
В чем может быть причина?

И, могу ли я добавить какую-то ценность недавно добавленной строке?

Вот код:

<html>
<head>
    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
        $('a').click(function() {
            $('#myTable').childs('tr').append('<tr class="child"><td>blahblah<\/td></tr>');
        });
    </script>
    <title></title>
</head>
<body>
    <a href="">Link</a>
    <table id="myTable">
        <tbody>
            <tr>
                <td>
                    test
                </td>
            </tr>
        </tbody>
    </table>
</body>
</html>
4b9b3361

Ответ 1

Я предполагаю, что вы хотите добавить эту строку в элемент <tbody>, и просто используя append() в <table>, вставьте <tr> вне <tbody>, возможно, с нежелательными результатами.

$('a').click(function() {
   $('#myTable tbody').append('<tr class="child"><td>blahblah</td></tr>');
});

EDIT: Вот полный исходный код, и он действительно работает: (Обратите внимание на $(document).ready(function(){});, которого раньше не было.

<html>
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
    $('a').click(function() {
       $('#myTable tbody').append('<tr class="child"><td>blahblah</td></tr>');
    });
});
</script>
<title></title>
</head>
<body>
<a href="javascript:void(0);">Link</a>
<table id="myTable">
  <tbody>
    <tr>
      <td>test</td>
    </tr>
  </tbody>
</table>
</body>
</html>

Ответ 2

Следующий код работает

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function AddRow()
{
    $('#myTable').append('<tr><td>test 2</td></tr>')
}
</script>
<title></title>
</head>
<body>
<input type="button" id="btnAdd" onclick="AddRow()"/>
<a href="">test</a>
<table id="myTable">
  <tbody >
    <tr>
      <td>
        test
      </td>
    </tr>
  </tbody>
</table>
</body>
</html>

Примечание это будет работать с jQuery 1.4, даже если таблица содержит элемент <tbody>:

jQuery, так как версия 1.4 (?) автоматически определяет, будет ли элемент, который вы пытаетесь вставить (используя любые методы append(), prepend(), before() или after()), является <tr> и вставляет он в первый <tbody> в вашей таблице или переносит его в новый <tbody>, если он не существует.

Ответ 3

Возможно, это тот ответ, который вы ищете. Он находит последний экземпляр <tr /> и добавляет новую строку после него:

<script type="text/javascript">
    $('a').click(function() {
        $('#myTable tr:last').after('<tr class="child"><td>blahblah<\/td></tr>');
    });
</script>

Ответ 4

Я всегда использую этот код ниже для более удобочитаемого

$('table').append([
'<tr>',
    '<td>My Item 1</td>',
    '<td>My Item 2</td>',
    '<td>My Item 3</td>',
    '<td>My Item 4</td>',
'</tr>'
].join(''));

или если у него есть tbody

$('table').find('tbody').append([
'<tr>',
    '<td>My Item 1</td>',
    '<td>My Item 2</td>',
    '<td>My Item 3</td>',
    '<td>My Item 4</td>',
'</tr>'
].join(''));

Ответ 5

Вы должны добавить в таблицу, а не строки.

<script type="text/javascript">
$('a').click(function() {
    $('#myTable').append('<tr class="child"><td>blahblah<\/td></tr>');
});
</script>

Ответ 6

Try:

$("#myTable").append("<tr><%= escape_javascript( render :partial => name_of_partial ) %></tr>");

И в partial вы должны иметь:

<td>row1</td>
<td>row2</td>

Ответ 7

Проверено и работает

Добавить в качестве первой строки в таблице

$(".table tbody").append("<tr><td>New row</td></tr>");

Добавить как последнюю строку в таблице

$(".table tbody").prepend("<tr><td>New row</td></tr>");