所以,我试图为我的网站制作一种单词可以更改的自动方式,它几乎有效,但是为什么我得到"未定义"这个词;你能帮忙吗?https://i.stack.imgur.com/Ss9wg.jpg
var words = ['affordable.', 'fast.', 'easy.', 'different.'],
element = document.getElementById('wordChange'),
currentWord = 0;
window.setInterval(function () {
currentWord++;
if (currentWord > words.length) currentWord = 0;
element.innerHTML = words[currentWord];
}, 1000);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>ColorBundle | Welcome</title>
<!--BOOTSTRAP-->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<!--CSS-->
<link rel="stylesheet" href="./style/style.css">
<!--GOOGLE FONTS-->
<link href="https://fonts.googleapis.com/css?family=Odibee+Sans|Raleway&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Shadows+Into+Light&display=swap" rel="stylesheet">
<!--
font-family: 'Odibee Sans', cursive;
font-family: 'Raleway', sans-serif;
font-family: 'Shadows Into Light', cursive;
-->
</head>
<body>
<div class="nav">
<div class="nav-brand">
<h1>ColorBundle</h1>
</div>
<label for="toggle">☰</label>
<input type="checkbox" id="toggle">
<div class="menu">
<a href="#">HOME</a>
<div class="menu-mobile-border"></div>
<a href="#">ABOUT</a>
<div class="menu-mobile-border"></div>
<a href="#">WORKS</a>
<div class="menu-mobile-border"></div>
<a href="#">SERVICES</a>
<div class="menu-mobile-border"></div>
<a href="#">BLOG</a>
<div class="menu-mobile-border"></div>
<a href="#">CONTACT</a>
<div class="menu-mobile-border"></div>
</div>
</div>
<div class="top-img">
<h2><span id="wordChange">creative.</span></h2>
</div>
<script src="./script/changeword.js"></script>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</body>
</html>
你能帮我解决这个问题吗?我知道这没什么大不了的,但我很好奇是什么
遍历数组,因此索引从 0 开始。虽然words.length
给你指数+1
所以你的currentWord > words.length
是越界的。
做if (currentWord >= words.length)
1(您的条件需要正确检查数组的长度(基于0索引(,因此currentWord > words.length
更改为currentWord >= words.length
。
2( 您立即增加计数器,以便您看到的第一个单词位于索引 1 处,因此您可能希望将计数器增量移动到函数的底部。
var words = ['affordable.', 'fast.', 'easy.', 'different.'],
element = document.getElementById('wordChange'),
currentWord = 0;
window.setInterval(function () {
if (currentWord >= words.length) currentWord = 0;
element.innerHTML = `${currentWord}${words[currentWord]}`;
++currentWord;
}, 1000);
<div id="wordChange"/>
数组从index 0
开始,所以通过
currentWord > words.length
你去index 4
不存在的地方。 您可以通过执行以下操作来解决此问题
currentWord >= words.length
相反。