TableRow单元格集合集属性

时间:2017-10-30 14:15:50

标签: html dom

我以table.rows.length的形式循环遍历表,并在其中包含rows.cells.length,当某个单元满足某个条件时,我想设置一个属性为该html那个细胞。

我知道你可以像

一样改变innerHTMl
var x = document.getElementById("myTable").rows[0].cells;
x[0].innerHTML = "NEW CONTENT";

所以我认为attr会像

x[0].attr = ('name', 'value');

但没有这样的运气。

有人可以指出我正确的方向吗?

如果有任何资源,您可以推荐给出一个完整的列表,列出您可以添加到单元格中的所有选项,这样会很棒!

2 个答案:

答案 0 :(得分:1)

由于您直接使用HTML节点进行操作,因此您正在处理HTMLElement个对象,而这些对象又继承自通用Element

正如您从文档中看到的那样,您可以通过Element.attributes地图覆盖属性,每个属性都是Attr对象,其中包含namevalue属性。

正确的方法是使用:

x[0].setAttribute('name', 'value');

答案 1 :(得分:1)

使用jQuery和es6语法,您可以使用map函数:

var xtr = $('#mytable tr');
xtr.map(itr => {
    xtd = $(itr).children('td');
    xtd.map(itd => {
        $(itd).attr('key', 'value');
    });
});

如果那令人困惑,你可以使用旧的方式使用for循环:

var xtr = $('#mytable tr');
for(i in xtr){
    xtd = $(xtr[i]).children('td');
    for(j in xtd){
        $(xtd[j]).attr('key', 'value');
    }
}

当你使用jQuery时,你要做的就是:

$('element').attr('key', 'value');