js动态生成表格

227 阅读1分钟

1. js动态生成表格

var row, cell;
table = document.createElement("table");
table.setAttribute("border", 1);
for (var i = 0; i < 3; i++) {
    row = document.createElement("tr");
    table.appendChild(row);
    for (var j = 0; j < 3; j++) {
        cell = document.createElement("td");
        cell.style.padding = "10px";
        cell.innerHTML = '第'+i+'行第'+j+'列';
        row.appendChild(cell);
    }
}
document.body.appendChild(table);

效果图

Snipaste_2022-05-11_20-51-44.png

2. 将table里面tr顺序颠倒

获取到的行没有reverse这个方法,因此我们有两种方式将获得的所有行进行转换。

var table = document.getElementById("table");
console.log(table.tBodies[0]); //获得table下的整个tbody的结构

//方法一:将所有行push到另外一个数组中
function tr_reverse1() {
    trs = [];
    orgs = table.tBodies[0].rows; // 通过table.tBodies[0].rows获取到当前tbody中的所有行
    for(i=0; i<orgs.length; i++)
        trs.push(orgs[i]);
    trs.reverse();
    //很关键:table append的时候会自动替换‘已存在’的tr
    for(i=0; i<trs.length; i++){
        table.tBodies[0].appendChild(trs[i]);
    }
}

//方法二:用Array.prototype.slice.call()将所有行变成数组
function tr_reverse2() {
    orgs = table.tBodies[0].rows;
    trs = Array.prototype.slice.call(orgs, 0);
    trs.reverse();
    for(i=0; i<trs.length; i++){
        table.tBodies[0].appendChild(trs[i]);
    }
}

tr_reverse1();

效果图

Snipaste_2022-05-11_20-51-44.png