迭代Id,存储值,放入数组

时间:2015-04-28 15:49:07

标签: javascript jquery arrays iterated-function

我希望能够遍历一些名为“#option1”,“#option2”等的ID。问题是它是一个交互式表单,我不知道会有多少选项。因此,当用户点击(“#dothis”)时,我需要一种方法来迭代DOM中的金额。

然后我需要获取这些选项的值,放入一个名为arraylist的数组中。

$("#doThis").on("click", function() {
            var optionone = $("#option1").val();
            var optiontwo = $("#option2").val();
            var optionthree = $("#option3").val();
            var optionfour = $("#option4").val();
            var optionfive = $("#option5").val();
            var arrayList = [optionone, optiontwo, optionthree,
                optionfour, optionfive];
            var decide = arrayList[Math.floor(Math.random() *
                arrayList.length)];
            $("#verdict").text(decide);
        }); // end of dothis click event

2 个答案:

答案 0 :(得分:1)

正如安迪所说,给每个选项同一个班级。在我的例子中,它是“选项 - 项目”。

$("#doThis").on("click", function() {
  var arrayList = [];
  $('.option-item').each(function(i) {
    arrayList[i] = $(this).val();
  });
  var decide = arrayList[Math.floor(Math.random() *
      arrayList.length)];
  $("#verdict").text(decide);
});

现在每个值都存储在数组中。

请参阅fiddle.

问候timmi

答案 1 :(得分:0)

使用您的代码,您可以使用选择器选择ID为'选项'的所有内容,如此[id^="option"],这里有如何使用它:

   $("#doThis").on("click", function () {
        var arrayList = [];
        $('[id^="option"]').each(function (index, element) {
            arrayList.push($(element).val() );
        });

        var decide = arrayList[Math.floor(Math.random() *
            arrayList.length)];
        $("#verdict").text(decide);
    }); // end of dothis click event