我试图使用onclick函数显示函数的结果。(javascript)

时间:2016-03-28 23:54:56

标签: javascript

我还在学习javascript,非常感谢任何帮助! 这是我的代码:

function queue(arr, item) {
    arr.push(item);
    var removed = arr.shift();
    return removed;
}

测试设置

var testArr = ["roller coaster", "horror tower", "big train", "space    maniac"];
console.log(queue(testArr));

这会很好地记录结果。我甚至可以将所有结果循环到控制台

然后我使用以下内容。尝试在html页面上的按钮中显示结果:

 <div id="queue1" class="gray1"> 
     <h3>Available Fast Pass Experience<h3>
     <input  id="button" type="button" value="Click to see your next fast pass                 available attraction" style="height:100px; width:380px;font-size:325px";     onclick= "queue(testArr.value = 'onclick= "queue(testArr.value = 'Your next fast      pass experience will be + queue(testArr)')";>
<div>
<input id="button2" type="button" value="Available Attraction"  style="height:100px; width:380px;font-size:325px;"/>

我使用上面的代码,但是我遇到了错误 我收到了这个错误:

未捕获的TypeError:arr.push不是函数

1 个答案:

答案 0 :(得分:0)

您的Javascript在您的示例中格式不正确。所有浏览器读取都是双引号之间的部分。

onclick="queue(testArr.value = 'onclick= "

就DOM解释器而言,剩下的就是垃圾。

queue(testArr.value = 'Your next fast pass experience will be + queue(testArr)')

您应该在问题中指明您要做的事情。如果你试图在数组中逐个显示吸引力,你可以简单地循环遍历数组并将当前索引保存在变量中。

HTML:

<div id="queue1" class="gray1"> 
     <h3>Available Fast Pass Experience<h3>
     <button id="button" type="button" onclick="window.clickButton();">Click to see your next fast pass available attraction</button>
<div>
<br>
<input id="output" placeholder="Available Attraction" />

使用Javascript:

var testArr = ["roller coaster", "horror tower", "big train", "space maniac"];
var currentAttractionIdx = 0;

window.clickButton = function() {
    var output = document.getElementById('output');
    output.value = testArr[currentAttractionIdx++];
    if (currentAttractionIdx >= testArr.length) currentAttractionIdx = 0;
}

https://jsfiddle.net/yk3qug4L/1/