如何解决如果陈述有问题,请您解释一下?
有人可以向我解释我的If
语句有什么问题吗?
我的代码是
if(row < coloredRow || column < coloredColumn) {
return alert('Error')
} else {
//return code
}
当我在输入中写入 5 5 2 2 时可以正常工作,但是当我输入 10 10 2 2 时,它将触发错误警报。这是codepen(https://codepen.io/ruslancik/pen/mdPeaYw?editors=1111)中的实时版本,只需尝试 5 5 2 2 ,然后再尝试 10 10 2 2
function createTable() {
var table = document.getElementById("myTable");
var row = document.getElementById("row").value;
var column = document.getElementById("column").value;
var coloredRow = document.getElementById("rowColor").value;
var coloredColumn = document.getElementById("columnColor").value;
if(row < coloredRow || column < coloredColumn) {
return alert('Error')
} else {
for (var i = 0; i < row; i++) {
var x = table.insertRow(i);
for (var j = 0; j < column; j++) {
var y = x.insertCell(j);
y.innerHTML = "Row-" + i + " Column-" + j;
}
}
for (var z = 0; z < row; z++) {
table.rows[coloredRow - 1].style.backgroundColor = "red";
table.rows[z].cells[coloredColumn - 1].style.backgroundColor = "blue";
table.rows[coloredRow - 1].cells[coloredColumn - 1].style.backgroundColor = "green";
}
}
}
解决方法
您要比较的是字符串,而不是数字。字符串'10'
确实比字符串'2'
“小”,因为该字符串中的第一个字符具有较低的ASCII值。 (基本上,您是按字母顺序 而不是数值来订购它们。)
将您的值解析为数字:
var row = parseInt(document.getElementById("row").value,10);
// repeat for other values
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。