我想在控制台中显示an的值,但当我尝试使用console.log记录该值时,它说无法读取'null'值
我曾尝试在我的HTML文件中使用,但它不太工作
下面是我的代码:
var grayscale = document.getElementById('grayscale');
console.log(grayscale.value)
grayscale.onchange = function(){
console.log(grayscale.value)
}
<input type='range' id='grayscale' min='0' max='100'>
它表明
Uncaught TypeError: Cannot read property 'value' of null
at main.js:3
5条答案
按热度按时间3pvhb19x1#
您的JavaScript在DOM准备就绪之前正在运行。请尝试将其 Package 在事件侦听器中,如下所示:
eit6fx6z2#
使用
window.onload
并调用一个函数,它会执行你想要的所有任务。它会等到窗口加载,然后你的函数才会被执行。现在它在html被呈现之前被执行,意味着它甚至在加载之前就访问了滑块的值。所以你会得到这个错误。c2e8gylq3#
把Javascript放在元素后面。如果grayscale为null,它还不是DOM的一部分。把Javascript文件或代码段放在body部分元素后面的最后。
或者您可以使用嵌入式javascript:
o2rvlv0m4#
试试这个:
ps:忘了提,启动脚本时,设置属性defer,如下:
e4yzc0pl5#
分析语句通常不适用于null,尤其是在不太宽松的JavaScript框架中。你只需要在前面添加一个否定符(!)就可以了。
设变量=空
或者你可能犯了一个常见的错误,比你应该做的更深一步。