通过其id向表中的特定单元格添加颜色

时间:2015-12-16 14:34:07

标签: javascript

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由随机函数生成的特定单元格的颜色。我尝试了不同的方法,但没有解决方案。

1 个答案:

答案 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"}).

我还建议在表格单元格中插入一个空格(&nbsp;)(请注意,您当前的代码不正确,它会将所有单元格的ID设置为字符串“ID”),使用

table += '<td id = "'+ID+'">&nbsp;</td>';

否则表格可能会变得有些奇怪。格式1,2中的id也可能导致问题,

怎么样
var ID = 'td_'+i+'_'+j;

为您提供了类似td_1_2的ID,不会弄乱任何浏览器。