У меня есть таблица с 2-4 столбцами и несколькими строками. Некоторые из очень правильных столбцов имеют текст, некоторые из них имеют изображение, некоторые из них имеют оба, а некоторые из них могут не иметь ни одного из них.Вставьте несколько TDs с помощью суффикса в середину таблицы
Я хочу скопировать содержимое 2-го столбца в 3 вновь созданных столбца, но вставьте их в середину (до text
и изображение, если применимо). Так что, похоже, что:
Важно, чтобы перебрать суффиксов как не все элементы должны быть перемещены.
Такой подход:
$("table td:nth-child(2) [id$=2]").each(function(i) {
var $newCell = $(this).wrap('<td></td>').parent();
var $newRow = $("table td:nth-child(2) [id$=1]").eq(i).parents('tr');
$(this).parents('tr').remove();
if ($newRow.find("td:contains('text')").index() > -1) {
$newRow.find("td:contains('text')").before($newCell);
} else if ($newRow.find("td.img").index() > -1) {
$newRow.find("td:contains('img')").before($newCell);
} else {
$newRow.find("td:contains('img')").before($newCell);
}
});
$("table td:nth-child(2) [id$=3]").each(function(i) {
var $newCell = $(this).wrap('<td></td>').parent();
var $newRow = $("table td:nth-child(2) [id$=1]").eq(i).parents('tr');
$(this).parents('tr').remove();
if ($newRow.find("td:contains('text')").index() > -1) {
$newRow.find("td:contains('text')").before($newCell);
} else if ($newRow.find("td.img").index() > -1) {
$newRow.find("td:contains('img')").before($newCell);
} else {
$newRow.find("td:contains('img')").before($newCell);
}
});
производит этот результат:
@RoryMcCrossan: Плохо, я забыл скрипку. См. Мое обновление. – user1170330