我已创建了颠倒表的行和列的javascript函数。下面是代码:getElementsByTagName(“td”)不会返回选定行的所有td子项
function rotate(){
var table = document.getElementById("table");
var newtable = document.createElement("table");
var tablebody = table.getElementsByTagName("tbody")[0];
var newtablebody = document.createElement("tbody");
newtable.appendChild(newtablebody);
var rows = tablebody.getElementsByTagName("tr");
var heads = tablebody.getElementsByTagName("th");
var i;
for(i = 0; i < rows.length; i++)
{
var cells = rows[i].getElementsByTagName("td");
var j;
for(j = 0; j < heads.length; j++)
{
if(newtablebody.getElementsByTagName("tr")[j] == undefined)
{
var newrow = document.createElement("tr");
newtablebody.appendChild(newrow);
}
if(cells[j] == undefined)
{
var newcell = document.createElement("td");
newtablebody.getElementsByTagName("tr")[j].appendChild(newcell);
}
else
{
var newcell = cells[j];
var nbspan = cells[j].getAttribute("colspan");
newcell.setAttribute("rowspan", nbspan);
newcell.setAttribute("colspan", 1);
newtablebody.getElementsByTagName("tr")[j].appendChild(newcell);
}
}
}
table.innerHTML = newtable.innerHTML;
};
的问题是,当我试图让与标签名“TD”所有的孩子当前行,我得到了很多不确定的细胞,而我可以从控制台日志中看到这些单元格存在并包含数据(我在日志中显示innerHTML)。
我真的迷路了,所以任何帮助,将不胜感激。谢谢!
你是否确定'table','tablebody'等等都是非空的? – birdoftheday
如果你在这里放一些HTML,测试你的脚本会容易得多。 – John
是的,我已经用console.log(table.innerHTML)等来检查几次,以确保。 其实我知道他们是非空的,因为一些孩子被检索,但有些不是,这就是为什么我很困惑... –