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

Jquery: использование appendTo во второй-последней строке таблицы

У меня есть часть DOM, которую я хотел бы вставить на мою страницу. В настоящее время я просто слепо использую:

$(myblob).appendTo(someotherblob);

Как мне сделать то же самое, но добавьте myblob ко второй-последней строке, которая находится внутри someotherblob. someotherblob в этом случае является таблицей, и я хочу добавить строку выше второй, чтобы она была последней.

4b9b3361

Ответ 1

$('#mytable tr:last').before("<tr><td>new row</td></tr>")

Ответ 2

Вы также можете выбрать строку с помощью селектора индексов.

$('#mytable tr').eq(-1).before("<tr><td>new row</td></tr>")

Здесь eq используется для выбора последней строки. eq - нулевой индекс, а отрицательный индекс начинается с последнего. поэтому я использовал -1 в индексе.

Ответ 3

Обратите внимание, что с before() элементы уже должны быть вставлены в документ (вы не можете вставить элемент перед другим, если он не находится на странице).

Итак, сначала нужно вставить someotherblob:

$('selector to insert someotherblob at')
    .append(someotherblob)
       .find('table tr:last')
          .prev()
          .before(myblob);

Ответ 4

  • Я ценю ответ, полученный orin, который был этот.

  • Я попробовал это и обнаружил, что требуемый столбец буквально смещается над таблицей enitre. Это потому, что я не использую тег adad для столбца заголовка. Еще раз я начал копать ответ и придумал свое решение.

  • Итак, вот так: в моем сценарии потребовалось показать общий итог всех записей, входящих в каждый столбец типа номера. Мне не удалось выполнить расчет, если все строки не заполнены на лету.

HTML:

<tr class="gTotal"> 
      <th colspan="4" class="head">Grand Total</th>
      <th><?php echo $grandTtlResumeSntCnt; ?></th>
      <th><?php echo $grandTtlEvalCnt; ?></th>
      <th><?php echo $grandTtlUniqEvalCnt; ?></th>
      <th><?php echo $grandTtlResCnt; ?></th>
      <th><?php echo $grandTtlUniqResCnt; ?></th>
</tr>
</table>

Jquery:

$('.gTotal').insertBefore('table>tbody>tr:nth-child(2)');

сообщите мне, если я отвечу на ваш вопрос.

Ответ 5

$('#mytable tr:last').prev().after("<tr><td>new row</td></tr>")

Ответ 7

Я думаю, вы хотите добавить строку для каждой строки таблицы между второй и последней строкой.

в этом случае попробуйте:

var rows=someotherblob.find("TR");
var nrows=rows.length;
    rows.slice(1,(nrows-2)).each(function(){
     $(this).append(myblob);
    })

Ответ 8

Немного выстрела в темноте, но я предполагаю, что у вас есть нижний колонтитул или, может быть, даже ввод данных внизу таблицы, и вы хотите добавить строки к данным, прежде чем сноска. В этом случае вы должны перестроить свою таблицу следующим образом:

<table id="myTable">
    <thead>
        <tr><!-- header row(s) --></tr>
    </thead>
    <tfoot>
        <tr><!-- footer row(s) --></tr>
    </tfoot>
    <tbody>
        <tr><!-- exciting and possibly dynamically inserted data goes here --></tr>
    </tbody>
</table>

Да, tbody появляется после tfoot. Уорд, да?

Тогда вы можете просто использовать это:

$("#myTable tbody").append(newrow);

Ответ 9

Проще всего это:

$("#TableName tr:last").prev().before("<tr><td>Hello World</td></tr>");