[英]Cannot read property 'length' of undefined - Error in JavaScript
I am learning animations in html / css / js using a code that reproduces a typewriter effect.我正在使用再现打字机效果的代码在 html / css / js 中学习动画。 Everything is working correctly, but I keep getting this error on my console:
一切正常,但我在控制台上不断收到此错误:
**script.js:33 Uncaught TypeError: Cannot read property 'length' of undefined
at StartTextAnimation (script.js:33)
at script.js:37**
I tried some solutions that I found on google but nothing worked.我尝试了一些在谷歌上找到的解决方案,但没有任何效果。 In my console.log(dataText) each string in my array is executed correctly.
在我的 console.log(dataText) 中,我的数组中的每个字符串都正确执行。 The error comes at the moment the loop is executed.
错误出现在循环执行的那一刻。
This is the code I'm working on now:这是我现在正在处理的代码:
document.addEventListener('DOMContentLoaded', function(event) {
// array with texts to type in typewriter
var dataText = ["Cyber", "Sapa", "Synth", "CYBER // SAPA // SYNTH // TÔRTA // POMBADEV.2020"];
// type one text in the typwriter
// keeps calling itself until the text is finished
function typeWriter(text, i, fnCallback) {
// chekc if text isn't finished yet
if (i < (text.length)) {
// add next character to h2
document.querySelector("h2").innerHTML = text.substring(0, i + 1) + '<span aria-hidden="true"></span>';
// wait for a while and call this function again for next character
setTimeout(function() {
typeWriter(text, i + 1, fnCallback)
}, 100);
}
// text finished, call callback if there is a callback function
else if (typeof fnCallback == 'function') {
// call callback after timeout
setTimeout(fnCallback, 700);
}
}
// start a typewriter animation for a text in the dataText array
function StartTextAnimation(i) {
if (typeof dataText[i] == 'undefined') {
setTimeout(function() {
StartTextAnimation(0);
}, 5000);
}
// check if dataText[i] exists
if (i < dataText[i].length) {
// text exists! start typewriter animation
typeWriter(dataText[i], 0, function() {
// after callback (and whole text has been animated), start next text
StartTextAnimation(i + 1);
});
}
}
// start the text animation
StartTextAnimation(0);
});
If anyone can help me I will be very grateful!如果有人可以帮助我,我将不胜感激!
PS. PS。 Codepen link: https://codepen.io/iMorettini/pen/rNMOvZK
Codepen 链接: https://codepen.io/iMorettini/pen/rNMOvZK
Maybe that dataText[i].length
should be dataText.length
of your line 33
.也许
dataText[i].length
应该是您的line 33
的dataText.length
。 Because you are checking for the words, not the letters in the words.因为您正在检查单词,而不是单词中的字母。
would be helpful if you can post a codepen of your project or something similar.如果您可以发布项目的代码笔或类似内容,将会很有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.