我以table.rows.length的形式循环遍历表,并在其中包含rows.cells.length,当某个单元满足某个条件时,我想设置一个属性为该html那个细胞。
我知道你可以像
一样改变innerHTMlvar x = document.getElementById("myTable").rows[0].cells;
x[0].innerHTML = "NEW CONTENT";
所以我认为attr会像
x[0].attr = ('name', 'value');
但没有这样的运气。
有人可以指出我正确的方向吗?如果有任何资源,您可以推荐给出一个完整的列表,列出您可以添加到单元格中的所有选项,这样会很棒!
答案 0 :(得分:1)
由于您直接使用HTML节点进行操作,因此您正在处理HTMLElement个对象,而这些对象又继承自通用Element。
正如您从文档中看到的那样,您可以通过Element.attributes地图覆盖属性,每个属性都是Attr对象,其中包含name
和value
属性。
正确的方法是使用:
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');