0

「#option1」、「#option2」などと呼ばれる多数の ID を反復処理できるようにしたいと考えています。問題はインタラクティブ フォームであり、いくつのオプションがあるかわかりません。そのため、ユーザーがクリックしたときに DOM 内の量を反復処理する方法が必要です ("#dothis")。

次に、これらのオプションの値を取得し、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
4

2 に答える 2

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);
});

すべての値が配列に格納されるようになりました。

フィドルを参照してください。

こんにちはティミ

于 2015-04-28T15:58:55.460 に答える
0

コードをそのまま使用すると、'option' で始まる 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
于 2015-04-28T15:58:29.923 に答える