单击时生成数字,然后将其传递给另一个函数

时间:2015-11-29 07:08:39

标签: javascript jquery web

说我有一些文字和一个按钮:

<p id="text-box">placeholder text</p>
<button id="text-btn">New Quote Please.</button>

当我点击按钮时,我希望在#文本框中显示一些新内容。所以我创建了一个数组和一些jQuery函数:

var textArr = [word0, word1, word2, word3, word4...];

$(document).ready(function() {
  $( "#text-btn" ).click(function(){
    x = Math.floor(Math.random()*textArr.length); //This line is the problem.
  });
  $("#text-box").html(textArr[x]);
});

这个想法是当单击按钮时会生成一个随机数,然后该数字用于选择textArr中的项目以显示在#text-box中。我相当肯定问题出现在注释行中。我认为$(&#34;#text-btn&#34;)函数中的x值要么根本没有创建,要么没有被传递到$(&#34; #text-box&#34; )功能。

感谢您的时间。

3 个答案:

答案 0 :(得分:2)

向我们展示控制台尝试console.log。和文本框html必须是内部点击事件。

$(document).ready(function() {
  $( "#text-btn" ).click(function(){
    x = Math.floor(Math.random()*quoteArr.length); //This line is the problem.
     console.log('check', Math.floor(Math.random()*quoteArr.length)) 
   $("#text-box").html(textArr[x]);
  });

});

答案 1 :(得分:1)

你有一些小错误

试试这个......

$(document).ready(function() {
    var textArr = ['word0', 'word1', 'word2', 'word3',' word4'];
  $( "#text-btn" ).click(function(){
   var x = Math.floor(Math.random()*(textArr.length));
       $("#text-box").text(textArr[x]);
  });

});

DEMO

更新

我发现的一些错误是:

  1. 您将$("#text-box").text(textArr[x]);放在了点击功能
  2. 之外
  3. 缺少括号x = Math.floor(Math.random()*textArr.length);,格式正确为var x = Math.floor(Math.random()*(textArr.length));
  4. 数组元素应该有引号(因为它是字符串)。
  5. document.ready函数中定义数组。

答案 2 :(得分:0)

好的,什么是quoteArr?你引用了错误的数组名称!试试这个。

x = Math.floor(Math.random()*(textArr.length));