javascript - 未捕获的 ReferenceError:_ 未定义在:1:1 (不是 jQuery)
问题描述
.js 文件包括一个字符串数组,当其中一个按钮单击 HTML 页面时,它假设生成随机单词,但由于某种原因,它存在范围变量问题(正如我在其他线程中所理解的那样),但我没有不知道如何直接设置.. 在此处输入图像描述
var interval;
var randomNum;
function newSubject(str) {
clearInterval(interval);
randomNum = Math.floor(Math.random()*(str.length));
interval = setInterval(document.getElementById('generator').innerHTML = str[randomNum],1000);
}
**var adjectives** = [
'מסוגל',
'מקסים',
'הרפתקני',
'חומצי',
'פעיל',
'מפחד',
'מזדקן',
'אגרסיבי',
'נעים',
'ערמומי',
'מדאיג',
'ערני',
'חי',
'מדהים',
'משועשע',
'עתיק',
'מתבייש',
'מושך',
'ממוצע',
'נורא',
];
var food = [
'אוכל',
'קובנה',
'קוסקוס',
'המבורגר',
'לחם',
'גבינה',
'טבעוני',
'צמחוני',
];
var nature = [
'עץ',
'שדה',
'דשא',
'רוח',
'אדמה',
'מים',
'אש',
];
var space = [
'כדור הארץ',
'אטמוספרה',
'ירח',
'כוכבים',
'חללית',
'חלל חיצון',
'חייזר',
'ונוס',
'שמש',
];
var tech = [
'מכונה',
'בינארי',
'אפס',
'אחד',
'מחשב',
'כוח עיבוד',
];
When buttons
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<title>Connection Freestyler</title>
<meta name="description" content="Hebrew Freestyle Generator" />
<meta name="author" content="Connection">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="words.js"></script>
</head>
<body>
<div class="main">
<div class="refresh" onclick="">
Refresh Every 5 Secs
</div>
<div class="generator" id="generator">
Generator "Select Subject"
</div>
<div class="subjects">
**<button class="adjectives" id="adjectives" onclick="newSubject(adjectives)">**
Adjectives
</button>
<button class="food" id="food" onclick="newSubject(food)">
Food
</button>
<button class="nature" id="nature" onclick="newSubject(nature)">
Nature
</button>
<button class="space" id="space" onclick="newSubject(space)">
Space
</button>
<button class="tech" onclick="newSubject(tech)">
Tech
</button>
</div>
</div>
</body>
</html>
我还尝试将每个变量放在任何可能的范围组合中,但每次都坚持相同的错误。
解决方案
setInterval
接受函数作为参数。采用
interval = setInterval(() => document.getElementById('generator').innerHTML = str[randomNum],1000);
并假设您的意思是每秒制作一个新的随机数,请使用
document.getElementById('generator').innerHTML = str[randomNum];
interval = setInterval(() => newSubject(str),1000);
剪断:
var interval;
var randomNum;
function newSubject(str) {
clearInterval(interval);
randomNum = Math.floor(Math.random()*(str.length));
document.getElementById('generator').innerHTML = str[randomNum];
interval = setInterval(() => newSubject(str),1000);
}
var adjectives = [
'מסוגל',
'מקסים',
'הרפתקני',
'חומצי',
'פעיל',
'מפחד',
'מזדקן',
'אגרסיבי',
'נעים',
'ערמומי',
'מדאיג',
'ערני',
'חי',
'מדהים',
'משועשע',
'עתיק',
'מתבייש',
'מושך',
'ממוצע',
'נורא',
];
var food = [
'אוכל',
'קובנה',
'קוסקוס',
'המבורגר',
'לחם',
'גבינה',
'טבעוני',
'צמחוני',
];
var nature = [
'עץ',
'שדה',
'דשא',
'רוח',
'אדמה',
'מים',
'אש',
];
var space = [
'כדור הארץ',
'אטמוספרה',
'ירח',
'כוכבים',
'חללית',
'חלל חיצון',
'חייזר',
'ונוס',
'שמש',
];
var tech = [
'מכונה',
'בינארי',
'אפס',
'אחד',
'מחשב',
'כוח עיבוד',
];
<body>
<div class="main">
<div class="refresh" onclick="">
Refresh Every 5 Secs
</div>
<div class="generator" id="generator">
Generator "Select Subject"
</div>
<div class="subjects">
**<button class="adjectives" id="adjectives" onclick="newSubject(adjectives)">**
Adjectives
</button>
<button class="food" id="food" onclick="newSubject(food)">
Food
</button>
<button class="nature" id="nature" onclick="newSubject(nature)">
Nature
</button>
<button class="space" id="space" onclick="newSubject(space)">
Space
</button>
<button class="tech" onclick="newSubject(tech)">
Tech
</button>
</div>
</div>
推荐阅读
- android - Cannot authenticate a sector in mifare card with correct key in android
- java - Failed to determine BusFactory implementation class name.: java.lang.ClassCastException: class org.apache.cxf.bus.spring.SpringBusFactory
- oracle - Pagination with JPA and Oracle database
- javascript - In React 16.9, directly updating the state without setState updates UI
- amazon-web-services - 如何将自己和所有管理员锁定在 S3 存储桶之外?
- html - Can we add multiple image sources to html img src tag?
- angular - Send an action with file contents in NgRx / Angular 7
- pandas - 取消堆叠单列数据框
- arrays - Julia: delete rows and columns from an array or matix
- flutter - 如何在颤动中获得数字的 n 次方(数字的平方或立方等)?