选择下拉菜单选项时报Cannot set property 'value' of null错误如何解决?
问题原因及修复方案
代码存在的核心错误
document.getElementById()传参错误,不需要加前缀#。getElementById()方法接收的参数是元素id的纯字符串,#是CSS选择器的专属语法,你传入#tipo_envio会找不到对应元素,返回null,后续操作null.value就触发了题目里的Cannot set property 'value' of null报错。- if判断条件错误使用赋值运算符
=,而非比较运算符。你写的value = "aereo"是赋值操作,不是判断相等逻辑,正确应该用==(非严格相等)或者===(严格相等)。 - 额外注意:需要确保你的HTML页面中确实存在id为
calculo_maritimo和calculo_aereo的两个DOM元素,否则即使修复前两个问题,调用这两个元素的style属性也会触发同类null报错。
修复后的代码示例
JS代码
function hideElement() { if (document.getElementById("tipo_envio").value === "aereo") { document.getElementById("calculo_maritimo").style.display = "none"; document.getElementById("calculo_aereo").style.display = "block"; } else { document.getElementById("calculo_aereo").style.display = "none"; document.getElementById("calculo_maritimo").style.display = "block"; } }
内容的提问来源于stack exchange,提问作者Jose Vasquez
相关产品推荐
相关产品推荐

