更改数组中的按钮文本

时间:2017-04-25 10:25:45

标签: javascript jquery html

我正在尝试使用数组更改按钮的面值,但我所得到的似乎并不起作用。

$(document).ready(function(){
  var buttonValues = ["The letter 1", "The letter 2", "The letter 3", "The letter 4", "The letter 5"];
  var randomNumber = Math.floor((randomImages.length)*Math.random());
  $(".answer").text(buttonValues[randomNumber]);
});

上面的JQuery和下面的HTML。

<button class="answer" id="1">a</button><br>
<button class="answer" id="2">b</button><br>
<button class="answer" id="3">c</button><br>

任何帮助都会受到赞赏,jQuery非常新。我在JS文件中还有其他几个函数,所以会发布完整代码的小提琴。我现在可能已经把错误包裹起来了。再次对此非常新。 fiddle of current progress

感谢大家的帮助,意识到我用代码犯了一些愚蠢的错误,但也得到了一些额外的建议。

4 个答案:

答案 0 :(得分:2)

您正在使用未定义的变量:

var randomNumber = Math.floor((randomImages.length)*Math.random());

应该是:

var randomNumber = Math.floor((buttonValues.length)*Math.random());

我猜你也想为每个按钮设置不同的文字。您当前的方法将为集合中的每个按钮设置相同的文本。这样的事情应该有效:

$('.answer').text(function() {
  var randomNumber = Math.floor((buttonValues.length)*Math.random());
  return buttonValues[randomNumber];
});

<强> Here's an updated fiddle

答案 1 :(得分:1)

您收到错误:Uncaught ReferenceError: randomImages is not defined

我认为变量randomNumber应该是数组buttonValues的长度。

您应该使用课程.abswer遍历按钮,并为jQuery.each() jQuery.text()设置issue

请注意,在.each()循环内部,您应创建randomNumber,以便为buttons元素获取不同的文字。

最后,要获取具有不同文本的所有按钮,只需从数组中删除randomNumber创建索引的元素。

代码:

var buttonValues = ['The letter 1', 'The letter 2', 'The letter 3', 'The letter 4', 'The letter 5'];

$('.answer').each(function() {
  var $button = $(this),
      randomNumber = Math.floor(buttonValues.length * Math.random());
  
  $button.text(buttonValues[randomNumber]);
  $button.attr('id', randomNumber);
  
  // Remove element with index randomNumber
  buttonValues.splice(randomNumber, 1);
});
<script src="//ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>

<div class="answers">
  <button class="answer" id="1">a</button><br>
  <button class="answer" id="2">b</button><br>
  <button class="answer" id="3">c</button><br>
  <div class="clr"></div>
</div>

答案 2 :(得分:0)

我也错过了变量名称。这里修改了ans -

var buttonValues = [“字母1”,“字母2”,“字母3”,“字母4”,“字母5”]; var randomNumber = Math.floor((buttonValues.length)* Math.random());

self.navigationItem.title = " "

答案 3 :(得分:-2)

您的$(".answer").text(...)数组未定义,更改按钮文本本身的代码(%% generate random data of given dimensions d = rand(2,2,1000); u = rand(1,1000); %% create your function myFunction = @(dVal,uVal) dVal.^uVal; %% perpare u to match the third dimension of d Ushifted = shiftdim(u,-1); % turns U from 1X1000 to 1X1X1000 )是正确的:)