function grid(rows, cols) {
var table = "<table id = \"myTable\">";
var size = (1 / rows * 525) + "px";
for (i=0; i<rows; i++) {
table += "<tr>";
for (j=0; j<cols; j++) {
var ID = i+','+j;
table += "<td id = \"ID\" >"+"</td>";
}
table += "</tr>";
}
table += "</table>";
var ID2 = randomFunction(rows, cols);
alert(ID2);
document.ID2.style.color = "red";
//document.getElementById(ID2).style.color = "#ff0000";
//table1.rows[1].cells[0].style.backgroundColor = "#003F87";
//id.style.backgroundColor='#003F87';
$("#container").empty().append(table);
}
我在javaScript中动态生成表,指定行数和列数。我给每个细胞都给了id。我需要改变id由随机函数生成的特定单元格的颜色。我尝试了不同的方法,但没有解决方案。
答案 0 :(得分:2)
一个接一个:
document.getElementById(ID2).style.color = "#ff0000";
不起作用,因为此时表格不在dom中,因此document.getElementById(ID2)
将不会返回任何内容。
table1.rows[1].cells[0].style.backgroundColor = "#003F87";
不起作用,因为table
是常规字符串,字符串没有rows
属性。
id.style.backgroundColor='#003F87';
将无效,因为id
又是一个简单的字符串。使用$("#container").empty().append(table);
首先将表格添加到dom,然后使用简单的方法进行颜色设置
document.getElementById(ID2).style.backgroundColor = "#ff0000";
或使用jquery:
$("#"+ID2).css({backgroundColor: "#ff0000"}).
我还建议在表格单元格中插入一个空格(
)(请注意,您当前的代码不正确,它会将所有单元格的ID设置为字符串“ID”),使用
table += '<td id = "'+ID+'"> </td>';
否则表格可能会变得有些奇怪。格式1,2中的id也可能导致问题,
怎么样var ID = 'td_'+i+'_'+j;
为您提供了类似td_1_2的ID,不会弄乱任何浏览器。