[英]AttachEvent of 0 is undefined
我想使用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">
最后一件事。 我已经在正文标签末尾的html文档中编写了脚本标签。
删除document
从document.startElements
。
您可能正在寻找Resize()
。 您忘记了()
来调用函数。
<body onload="Resize()">
但是,内联JS(例如html中的onload)从来都不是一个好习惯。 看看其中一些结果: 为什么内联JS不好?
相反,您应使用JavaScript附加事件监听器,如下所示:
window.addEventListener('load', function() {
//code here
});
除非您希望代码仅在IE5-8中运行,否则需要使用addEventListener
而不是attachEvent
,因此应为addEventListener('change',
我也想知道您是否打算从1
而不是0
开始循环。 第一个元素将是项0
。 如果页面上只有一个项目,则将其跳过,并从不存在的项目开始。
因此,请尝试:
for (var i = 0;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.