如何在javascript中插入从表最右端/列开始的表单元格

如何在javascript中插入从表最右端/列开始的表单元格,javascript,html,html-table,tablecell,Javascript,Html,Html Table,Tablecell,我正在一张桌子上工作,并以一种蛇形的方式将单元格添加到桌子上 所以您可以想象,对于第1行:我想要一个函数,它将表格单元格从最左边的列添加到最右边的列 然后对于第2行:我希望有一个函数,可以将表格单元格从最右边的列添加到最左边的列 使用w3schools中的代码完成从左到右的移动 function myFunction() { var row = document.getElementById("myRow"); var x = row.insertCell(-1); x.innerH

我正在一张桌子上工作,并以一种蛇形的方式将单元格添加到桌子上

所以您可以想象,对于第1行:我想要一个函数,它将表格单元格从最左边的列添加到最右边的列

然后对于第2行:我希望有一个函数,可以将表格单元格从最右边的列添加到最左边的列

使用w3schools中的代码完成从左到右的移动

function myFunction() {
  var row = document.getElementById("myRow");
  var x = row.insertCell(-1);
  x.innerHTML = "New cell";
}

然而,我需要从右到左的帮助。我知道这一点:

row.insertCell(0)

但这会将单元格添加到起始单元格的左侧,并将其推到右侧我想从最右边的列开始,按1添加单元格1(添加到最后一个单元格的左边),直到到达表的最左边的列为止。想象一下一个梦幻足球选秀板,然后像蛇一样穿过桌子。第一排从左到右,第二排从右到左,第三排从左到右,第四排从右到左,等等……有什么想法吗?

离开
行时,您想要以下内容。inserCell(-1)
;只需添加一个具有float属性的新td元素,如下所示:

td{float:right;}
或者,如果您想从右角开始到左角,则可以使用以下方法:

table, td {
    border: 1px solid black;
    float:right;
}

指向OP解决方案的链接:

CSS解决方案可能是您的最佳选择,脚本解决方案有点笨重

您可以使用间隔单元格填充行,间隔单元格的单元格跨度为行中的单元格数。然后,每次在其后面附加一个单元格时,将其cellspan减少1。最后,拆下隔套

下面是一个示例实现,从右向左添加单元格。你应该能够适应你需要的算法,我希望评论是足够的。也许有更好的办法

一旦它填充了行,它将删除它,准备重新开始

我使用了data-*属性来标识间隔符,但您可以使用类甚至ID

函数doCellThing(){
var table=document.querySelector('table');
var numCells=table.rows[0].cells.length;
var间隔区,细胞,i;
//抓取第二行(如果有),或创建一个新行
var row=table.rows[1]| | table.insertRow();
//获取行中的第一个单元格
单元格=行。单元格[0];
//如果不是间隔单元格,请删除该行
if(cell&!cell.hasAttribute('data-span')){
table.deleteRow(row.rowIndex);
返回;
//否则,它就是一个垫片
}否则{
间隔细胞
}
//如果没有单元,则插入间隔单元
如果(!垫片){
间隔=行。插入单元格();
spacer.colSpan=numCells;
setAttribute('data-span','span');
}
//如果垫片宽度为1,则将其移除。否则,
//将跨度减小1
如果(间隔棒.colSpan==1){
行。删除单元格(0);
间隔=零;
}否则{
间隔棒.colSpan=间隔棒.colSpan-1;
} 
//在先前单元格的左侧插入一个新单元格
单元格=行插入单元格(间隔区?1:0)
cell.innerHTML=numCells-row.cells.length+(间隔符?1:0);
}
做细胞的事 0123
是否希望:应该适合:
row.insertBefore(newCell,row.firstChild)
。每一个新插入的电池都将成为第一个孩子。@eugen sunic-这正是我要找的,但当我回到笔记本电脑时,让我再检查一遍。我正在我的iPhone上检查这个,对吗now@Seeeyonnn我已经在我下面的帖子中包含了这个链接。如果你接受它作为一个答案,那就太好了,这样其他有相同/类似问题的人就可以参考iTunes了。乍一看,我认为这是可行的,但这将改变整个表格从右到左。我试着让第一排从左到右,然后第二排从右到左。除了将所有td更改为浮动之外,还有其他想法吗?