javascript - 生成的按钮上的随机颜色

标签 javascript html-table

我编写了一个代码,生成一个表格和 32 个按钮。 我有一个与每个按钮关联的 id。问题是,颜色也是随机生成的,仅插入到表格的第一个按钮上。 这怎么可能?

 window.onload = function createTable()
 {
 var body=document.getElementsByTagName('body')[0];
 var tbl=document.createElement('table');
 var letters = '0123456789ABCDEF'.split('');
 var color = '#';

 tbl.setAttribute('id', "tableID");

 var tbdy = document.createElement('tbody');          

 for(var i = 0; i < 4; i++) 
 {
     var tr = document.createElement('tr');               

     for(var j = 0; j < 8; j++)
     {
         var td = document.createElement('td');           
         var bt = document.createElement('button');       

         for (var k = 0; k < 6; k++)                    
         {
         color += letters[Math.round(Math.random() * 15)];
         }

         bt.id = "button" + idx;                            
         console.log("IDX: " + idx);             
         td.appendChild(bt);                           
         idx++;                          
                     tr.appendChild(td)                            
         console.log(bt);
         bt.style.background = color;
    }
    tbdy.appendChild(tr);
}

最佳答案

您需要在 k 循环之前再次将 color var 重置为 #

color = '#';
for (var k = 0; k < 6; k++) 
....

在使用之前还需要声明idx

var idx = 0;
for(var j = 0; j < 8; j++)
....
<小时/>

编辑

在按钮单击时实现背景颜色更改

全部完成后添加此代码

var buttons = Array.prototype.slice.call(tbl.getElementsByTagName("button"));

buttons.forEach(function(btn){
   btn.addEventListener("click",function(){
       document.body.style.backgroundColor = btn.style.backgroundColor;
    });
});

<强> UPDATED FIDDLE Based on Bhavik's Solution

关于javascript - 生成的按钮上的随机颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23406638/

相关文章:

javascript - 如何使用node.js请求模块发送文件?

javascript - 需要组合 jQuery 函数的帮助

html-table - thead 中的两行,无法在第二个中设置列宽

javascript - 使表格单元格高度逐渐变化

html - 响应式表格 html - 内联产品标题

如果变量有超过五个零,则 JavaScript 匹配

javascript - Eloquent JavaScript 第 7 章中的 critter.act 数组中的每个小动物是如何唯一的?

javascript - 在 jQuery 效果运行时防止提交

javascript - 将第一个元素聚焦在新行上

javascript - jQuery 表格图像