我有一个包含一些计算的外部JavaScript文件。结果被放入一个数组中。我写了一些'get'函数来返回传入索引值的值。在我的HTML文件中,我编写了一个函数,每1秒在一个新行上显示数组。这是代码:
<script>
var showSequence = function (target, message, index, interval) {
if(index < message.length) {
$(target).append(message[index++]);
setTimeout(function (){ showSequence(target, message, index, interval); }, interval);
}
}
</script>
我称之为:
<body>
<script>
$function(){
for(var i = 0; i < getArrayLength(); i++){
showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000);
}
}
</script>
<h1>Fibonacci Calculation:</h1>
<p id='calculations'></p>
但是我得到了一个意外的令牌{错误。作为JavaScript的新手,我找不到遗失{。寻求一点帮助。
答案 0 :(得分:0)
尝试在第二个函数开头用(
替换$
,并在第二个函数的开头添加())
,以创建并调用一个立即调用的函数表达式(&#34; IIFE&#34;)。请参阅What is this (IIFE) construct in javascript?。
或者,可以从第二个函数的开头删除$
,为第二个函数提供name
,并通过name
调用第二个函数;即,
function runSequence(){
for(var i = 0; i < arr.length; i++){
showSequence('#calculations', arr, i, 1000)
}
};
runSequence();
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
var showSequence = function (target, message, index, interval) {
if(index < message.length) {
$(target).append(message[index++]);
setTimeout(function (){ showSequence(target, message, index, interval); }, interval);
}
};
// substituted `(` for `$` at beginning of function
(function(){
for(var i = 0; i < arr.length; i++){
showSequence('#calculations', arr, i, 1000)
}
}()) // added `())` at closing of function
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<h1>Fibonacci Calculation:</h1>
<p id='calculations'></p>
&#13;
答案 1 :(得分:0)
为什么要添加$function()
?它不存在。
只需删除它,我认为它将起作用
JS
//$function(){
for(var i = 0; i < getArrayLength(); i++){
showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000);
}
//}
编辑:我想我明白你想做什么
JS
$(function(){
for(var i = 0; i < getArrayLength(); i++){
showSequence('#calculations', getArrayValue(i) + '<br />', i, 1000);
}
})
答案 2 :(得分:0)
发现了这个问题。所以我必须等到JQuery准备就绪才能执行一组函数。我需要更换:
$(function(){ //Do Stuff here });
使用:
$(document).ready(function() { //Do Stuff here });