Javascript随机单元格背景颜色改变
Javascript random cell background color change
我正在尝试创建一个表。ruudud.value
是<select>
的值。但是,当这个函数创建一个表时,我希望它在其中放置一些随机的黄色单元格。这是一个小的学校项目,这个代码是一个代码的一部分,应该创建战舰游戏。
Also if possible。当它创造了一个随机的黄色细胞,那么它能把下一个细胞也涂成黄色吗?(创建一个2单元的船)。
function addTable() {
var myTableDiv = document.getElementById("myDynamicTable");
var table = document.createElement('TABLE');
table.border = '1';
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
var x = Math.floor((Math.random() * ruudud.value) + 0);
var y = Math.floor((Math.random() * ruudud.value) + 0);
for (var i = 0; i < ruudud.value; i++) {
var tr = document.createElement('TR');
tableBody.appendChild(tr);
console.log(x + "," + y);
for (var j = 0; j < ruudud.value; j++) {
var td = document.createElement('TD');
var td = document.getElementsByTagName("td");
td.width = '50';
td.height = '50';
td.style.backgroundColor = "red";
td.setAttribute("onClick", "colorChange(this)")
td.innerHTML = (i + "," + j);
if (td[i].innerHTML == (x + "," + y)) {
td[i].setAttribute("style", "background:yellow;");
}
tr.appendChild(td);
}
}
myTableDiv.appendChild(table);
}
function colorChange(tdObj) {
tdObj.style.backgroundColor = "green";}
example2:
function addTable() {
var myTableDiv = document.getElementById("myDynamicTable");
var table = document.createElement('TABLE');
table.border='1';
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
var x = Math.floor((Math.random() * ruudud.value) + 0);
var y = Math.floor((Math.random() * ruudud.value) + 0);
for (var i=0; i<ruudud.value; i++){
var tr = document.createElement('TR');
tableBody.appendChild(tr);
console.log(x + ","+y);
for (var j=0; j<ruudud.value; j++){
var td = document.createElement('TD');
var td2 = document.getElementsByTagName("td");
var i = 0, tds = td.length;
td.width='50';
td.height='50';
td.style.backgroundColor="white";
td.setAttribute("onClick", "colorChange(this)")
td.innerHTML = (i +","+ j);
if(td2[i].innerHTML == (x + "," + y)) {
td2[i].setAttribute("style", "background:yellow;");
}
tr.appendChild(td);
}
}
myTableDiv.appendChild(table);
}
function colorChange(tdObj) {
tdObj.style.backgroundColor = "green";}
在这两种情况下,您都是在将td
元素附加到DOM之前选择它。您不需要再次选择它,您可以在创建td
元素时简单地应用样式。这是对代码的一个小修改。我也按照你的要求添加了一个条件,可以添加双单元船。
function addTable(double) {
var myTableDiv = document.getElementById("myDynamicTable");
var table = document.createElement('TABLE');
table.border = '1';
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
var x = Math.floor((Math.random() * ruudud.value) + 0);
var y = Math.floor((Math.random() * ruudud.value) + 0);
for (var i = 0; i < ruudud.value; i++) {
var tr = document.createElement('TR');
tableBody.appendChild(tr);
//console.log(x + "," + y);
for (var j = 0; j < ruudud.value; j++) {
var td = document.createElement('td');
td.width = '50';
td.height = '50';
td.style.backgroundColor = "red";
td.setAttribute("onClick", "colorChange(this)");
td.innerHTML = (i + "," + j);
if (x === i && y === j) {
td.setAttribute("style", "background:yellow;");
}
// If you need to enable two-cell ships, pass true to the function
// You can allow horizontal or vertical cells by changing x and ys in the equality checks below
if(double){
if(y+1 < ruudud.value){
if(x === i && y+1 === j){
td.setAttribute("style", "background:yellow;");
}
}
else{
if(x === i && y-1 === j){
td.setAttribute("style", "background:yellow;");
}
}
}
tr.appendChild(td);
}
}
myTableDiv.appendChild(table);
}
function colorChange(tdObj) {
tdObj.style.backgroundColor = "green";}
addTable(true);
相关文章:
- 改变所有<td>为特定的桌子点击颜色
- 如何用jquery动画改变背景颜色,就像一个过渡
- 在用Javascript更改背景颜色后:hover don'不要改变颜色
- AJAX数据库更新与CSS按钮颜色改变使用Codeigniter
- & lt; meter>动画生命条颜色改变
- Javascript随机单元格背景颜色改变
- Jquery切换CSS颜色改变
- Jquery背景颜色改变按钮点击表内
- 每次球碰到墙时,将球的颜色改变为随机的颜色
- 谷歌地图路线方向路径颜色改变导航仪从一个航路点移动到另一个航路点
- Jquery鼠标悬停颜色改变
- Css下拉颜色改变器
- 根据底层颜色改变固定文本的颜色
- 文字的悬停颜色改变
- 谷歌地图API动画多边形颜色改变
- 改变字形点击+表头颜色改变
- jQuery动画颜色改变
- D3 javascript点击一条线来改变线的颜色-改变所有的线
- 如何使文字的颜色改变,当鼠标移动到图像上
- jQuery中的颜色/背景颜色改变动画