如果随机数字是3-Javascript的倍数,则将表单元格更改为红色
Changing table cell to red if the random num is a multiple of 3 - Javascript
这是我的第一个JS项目,我的任务是制作一个随机生成从1到100的数字的表,并将3的倍数单元格的背景色更改为红色,将2的倍数单元格更改为蓝色。我可以用随机数字创建表格,但不知道如何更改单元格的背景色。这是我的桌子代码。
// creates a string var that holds the table
var str = "<table border='1'>";
for (row = 0; row < num; row++) {
str += "<tr>";
for (col = 0; col < num; col++) {
str += "<td>";
// creates a random number from 1-100
var randNum = Math.floor(Math.random() * 100) + 1;
str += randNum;
// if a random num is a multiple of 3
if (randNum%3 === 0) {
// make cell have red background
}
// if a random number is a multiple of 2
else if (randNum%2 === 0) {
// make cell have blue background
}
str += "</td>";
}
str += "</tr>";
}
str += "</table>";
我尝试设置<td>,id=",然后在if语句中像那样调用它,但它不起作用。
str += "<td id='redOrBlue'>";
// creates a random number from 1-100
var randNum = Math.floor(Math.random() * 100) + 1;
str += randNum;
// if a random num is a multiple of 3
if (randNum%3 === 0) {
// make cell have red background
document.getElementById('redOrBlue').style.backgroundColor='red';
}
// if a random number is a multiple of 2
else if (randNum%2 === 0) {
// make cell have blue background
document.getElementById('redOrBlue').style.backgroundColor='blue';
}
str += "</td>";
如有任何帮助,我们将不胜感激。
http://pastebin.com/EueJtT9n-完整程序代码
如果您将td创建放入If-else语句中,则可以简单地执行以下操作:
HTML
<div id="mainDiv">
<input type="text" id="myNo" />
<input type="button" id="gridSize" value="Show It" />
</div>
<div id="result"></div>
JS-
var button = document.getElementById('gridSize');
button.onclick = function(e) {
result = document.getElementById('result');
num = parseInt(document.getElementById('myNo').value);
alert(num);
if (isNaN(num)) {
alert("No Numeric Value!");
} else {
result.innerHTML = num;
}
var str = "<table border='2'>";
for (row = 0; row < num; row++) {
str += "<tr>";
for (col = 0; col < num; col++) {
var randNum = Math.floor(Math.random() * 100) + 1;
if (randNum % 2 === 0) {
str += '<td style="background: red;">';
} else if (randNum % 3 === 0) {
str += '<td style="background: blue;">';
} else {
str += "<td>";
}
str += randNum + "</td>";
}
str += "</tr>";
}
str = str + "</table>";
result.innerHTML = str;
}
jsfiddle此处
我会坚持你在第一次努力中所做的。在开始之前只添加一些CSS,类.blue cell和.red cell 这将稍微改变你的逻辑,因为你需要: 1) 将开头的"td"添加到字符串中 2) 生成进入单元格的号码 3) 将"class="红细胞/蓝细胞">"添加到字符串 4) 将数字添加到字符串 5) 关闭标签"td"
尝试在for
循环中使用以下代码:
str += "<td"; //Notice how we leave out the second bracket for now
// creates a random number from 1-100
var randNum = Math.floor(Math.random() * 100) + 1;
// if a random num is a multiple of 3
if (randNum%3 === 0 && randNum%2 === 0) {
str += ' style="background-color:purple"';
} else if (randNum%3 === 0) {
//Add an inline style to change the background colour
str += ' style="background-color:red"';
} else if (randNum%2 === 0) {
//Add an inline style to change the background colour
str += ' style="background-color:blue"';
}
str += ">" + randNum + "</td>"; //Now we add the missing bracket in here
这段代码所做的是,当我们检查条件(随机数)时,保持td
元素打开,为其添加属性。
我尝试设置<td>,id=",然后在if语句中像那样调用它,但它不起作用。
当你仔细想想,这实际上是有道理的,这不起作用。id
是DOM(文档对象模型)的一个元素的属性,它本质上是Javascript访问网页的方式。当您尝试使用给定的id
获取元素时,它失败了,因为DOM中不存在该元素——目前它只是一个字符串变量。
为了让这个方法发挥作用,你必须将"表字符串"添加到DOM和中,然后你就可以访问和更改元素的ID属性。我制作了一个JSFiddle,通过使用id修改方法来模仿您想要的行为。
- 如何在单击单元格中的链接值时动态更改表行背景色
- 将JS封装到GWT单元格表中
- 谷歌工作表中的按钮,当单击时,会更改特定单元格的背景
- 通过单击引导表单元格选中复选框
- 在javascript中第一次单击行时获取表单元格值
- 获取HTML表中单击的列中第一个单元格和单击的行中第一个单元的内容
- 谷歌应用程序将电子邮件表单脚本转换为PDF格式,但希望清除一些单元格
- 在没有jQuery的JavaScript中查找单击的表单元格的行和列
- 单击表格单元格或单击图像本身时翻转图像
- 向动态创建的表中的单元格添加单击函数 - JavaScript
- 如何使用jQuery使表格中的每个单元格可单击
- JQuery或Javascript获得标签文本在表格单元格与单选按钮和标签的组合
- 如何在Meteor中为带有输入单元格表的表单做响应式绑定?
- 如何获得骨干事件的单元格视图单击
- Javascript隐藏表格单元格按钮单击
- 更改jQuery单元格表值
- 如何使单元格可单击并返回值
- 剑道网格文本选择在单元格/表内与多选启用
- 在td -访问下一个单元格中单击
- 打开一个表单后点击更多的单元格表(jquery/php)