我想通过onchange-Event自动调整我网站的部分内容。但一如既往,我遇到了一个小问题需要解决。 控制台出现此错误:
The property undefined or a null reference can not be retrieved
”。
function Resize() {
var winHeight = window.innerHeight;
var winWidth = window.innerWidth;
var startElements = document.getElementsByClassName('start');
for (var i = 1; i <= startElements.length; i++) {
document.startElements[i].attachEvent('onchange', function StartResize() {
startElements[i].style.paddingLeft = winWidth * 0.1;
startElements[i].style.paddingRight = winWidth * 0.1;
});
};
};
<body onload="Resize">
最后的事情。我已经在body标签末尾的html文档中编写了脚本标记。
答案 0 :(得分:1)
从document
删除document.startElements
。
您可能正在寻找Resize()
。你忘了()
来调用你的功能。
<body onload="Resize()">
但是,内联JS(比如你的html中的onload)从来都不是一个好习惯。查看以下部分结果: Why is inline JS bad?
相反,您应该使用以下JavaScript附加事件侦听器:
window.addEventListener('load', function() {
//code here
});
除非您希望代码仅在IE5-8中使用,否则您需要使用addEventListener
而不是attachEvent
,因此应该addEventListener('change',
我也想知道你是否打算在1
而不是0
开始循环。第一个元素是项0
。如果页面上只有一个项目,则跳过它并从不存在的项目开始。
所以,也试试:
for (var i = 0;