javascript - 无法通过下拉表单将值传递给 JavaScript 变量 - 错误 : "Uncaught TypeError: Cannot read property ' value' of null"

标签 javascript

我的 HTML 中有一个输入表单元素,它将一个值传递给函数以初始化游戏板。但是我收到“Uncaught TypeError: Cannot read property 'value' of null”错误。

这是我的表单元素:

<form>
    Difficulty<br>
    <select id="size">
        <option value='3'>Easy</option>
        <option value='4' selected>Normal</option>
        <option value='5'>Hard</option>
        <option value='6'>Extra Hard</option>
    </select>
</form>

以及相应的JavaScript:

function initBoard() {
    var difficulty = document.querySelector('size').value
    var board = {}
    board.cells = []
    for (var i = 0; i < difficulty; i++) {
        for (var j = 0; j < difficulty; j++) {
            board.cells.push({ row: i, col: j, isMine: (Math.random() >= 0.7), isMarked: false, hidden: true })
        }
    }
    return board
}

我不明白为什么变量为空。

最佳答案

您的querySelector正在尝试引用名为size的id,因此您需要正确引用CSS选择器(哈希符号):

var difficulty = document.querySelector('#size').value

w3schools page on querySelector 给出了一些不同选择器类型匹配的示例。

关于javascript - 无法通过下拉表单将值传递给 JavaScript 变量 - 错误 : "Uncaught TypeError: Cannot read property ' value' of null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60581154/

相关文章:

javascript - 根据用户年龄更改单选按钮值的问题

javascript - 提交时更改 HTML Post 参数

javascript - 使用 PHP/Javascript 中的按钮动态生成 <div> 部分?

javascript - 如何只运行一次 vue 计算属性?

javascript - 如何使用 jQuery 获取在输入框中输入的上一个文本值

javascript - 将数组键转换为数字node.js

php - 如果 window.print 被取消,则阻止表单提交

PHP file_get_contents 使用变量

javascript - 使用 ng-repeat AngularJS 构建大表后,Internet Explorer 中的垃圾收集需要很长时间

javascript - 在vuejs上登录后重新渲染导航栏