我有一个包含2-4列和多行的表。一些非常正确的列有文本,有些有图像,有些有两个,有些可能没有。
我想将第二列的内容复制到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);
}
});
产生了这个结果:
答案 0 :(得分:1)
我尝试用不同的方法更新你的小提琴:https://jsfiddle.net/ed964u0o/1/
我保存了要在对象gravity="center"
中插入的元素。