未捕获的TypeError:无法设置null的属性’onchange’
我正在使用下拉列表来动态更改页面上的内容。 它工作但只在Chrome中抛出一个js错误。 Chrome推荐的内容我不知道如何实施。 Site是在ExpressionEngine 2.8.1中构建的。
在CHROME中的错误消息
未捕获的TypeError:无法设置null functions.js:65的属性’onchange’
不推荐使用event.returnValue。 请改用标准的event.preventDefault()。
我的JS代码
document.getElementById("drop").onchange = function() { if (this.selectedIndex!==0) { window.location.href = this.value; } };
我的HTML代码
这个错误消息只有一个可能的原因, document.getElementById("drop")
不返回该元素,唯一的原因是该元素不存在,但在HTML中显然是这样,所以脚本必须在DOM中的元素之前运行。
你必须在DOM中的元素之后包含javascript,或者将它包装在DOM就绪处理程序中,如window.onload等。
您在HTML呈现之前运行JavaScript代码。
使用文档就绪事件
$(document).ready(function(){ $('#drop').change(function(){ if (this.selectedIndex !== 0) { window.location.href = this.value; } }) });