javascript - 如何检查从数组创建的复选框是否设置为 TRUE
问题描述
我开始学习一点 JavaScript。我正在尝试创建,比如说,某种小游戏。
我有一个n * n matrix
由复选框组成的矩阵。如果某组 CHECKBOXES 设置为TRUE,则输出任何内容(未强定义)。
我的问题是,当我将哪些复选框设置为 true 时,什么也没有发生。
这是我为矩阵创建“起点”的部分代码:
for (var i = 0; i < matrix * matrix; i++)
{
values[i] = "values" + i;
}
现在这是我为该数组中的每个元素赋予复选框类型的部分:
for (var i = 0; i < matrix * matrix; i++)
{
var checkbox = "<input type = 'checkbox' value = '" + values[i].checked + "' />";
document.write(checkbox + values[i]);
if (i % 2 != 0)
{
document.write("<br>");
}
}
我知道这不适用于大于 2 的矩阵,但我想先感受一下较小的输入,然后逐步提高。
最后,这是我检查某些框是否设置为 true 的代码的一部分:
if (values[1] == true && values[3] == true)
{
document.write("You got it!"); // This doesn't get outputted :(
}
这是完整的代码: https ://pastebin.com/30Neb3zJ
我对 JS 真的很陌生,任何类型的反馈/信息都将不胜感激。
解决方案
您的代码有几个问题:
矩阵中的所有值都
values
看起来像字符串,例如values0
,values1
等。当您测试时if (values[1] == true && values[3] == true)
,您正在测试字符串值(例如values1
)是否等于布尔值true
。您正在测试一个永远不会改变的数组的值。我认为您想测试实际复选框的内容。为此,您需要检索这些 DOM 元素并测试它们的
.checked
属性是否为true
:您在页面加载时立即测试这些值,而不是在用户选中某些复选框之后。您需要
getAnswer()
在用户选中某些框后调用,或者可能在他们每次选中某个框时调用。
因此,要测试复选框,并在用户完成检查后执行此操作,您需要为所有复选框添加一个事件侦听器(或添加到某种“提交”按钮,具体取决于您想要触发测试的内容) .
推荐阅读
- python - 比较python pandas中的日期
- firebase - 无法从 Firebase 承诺中访问我的商店
- c# - 在 Azure AppService 中获取 X509Certificate2.PrivateKey 时出错
- swift - 矩阵的快速舍入元素
- matlab - 使用 MATLAB 提取文本文件中的特定行号
- python - 计算满足条件的连续值的数量(Pandas Dataframe)
- gradle - 在多个浏览器上使用 gradle 运行特定测试
- ssis - SSIS - 术语查找和查找之间有什么区别
- angular - Angular 模块无法识别导入的模块
- java - 测试等于方法