Назначение нескольких переменных, содержащих селекторы jquery, быстрее с помощью цикла for - PullRequest
0 голосов
/ 07 июня 2018

Как я могу уменьшить приведенный ниже код?Я хочу назначить несколько переменных в меньшем количестве строк, возможно, цикл for может помочь.

let a1 = $('[name="answer[1]"]:checked').val(),
    a2 = $('[name="answer[2]"]:checked').val(),
    a3 = $('[name="answer[3]"]:checked').val(),
    a4 = $('[name="answer[4]"]:checked').val(),
    a5 = $('[name="answer[5]"]:checked').val(),
    a6 = $('[name="answer[6]"]:checked').val(),
    a7 = $('[name="answer[7]"]:checked').val();

То, что я пробовал, но не работает:

var i;
for (i = 1; i < 8; i++) {
    let a[i] = $('[name="answer['+i+']"]:checked').val();
}

Ответы [ 3 ]

0 голосов
/ 07 июня 2018
  for (var i = 0; i < 8; ++i) {
      a[i] = "whatever";
  }

как опубликовано в JavaScript: динамическое создание переменных для циклов

0 голосов
/ 07 июня 2018

В среде браузера вы можете назначать переменные, устанавливая свойство объекта window:

for (let i = 0; i < 8; i++) {
  window["a"+i] = "something "+i;
}

console.log(a2, a3);

Что касается вашего кода, используйте это:

window["a"+i] = $('[name="answer['+i+']"]:checked').val();

В цикле for

0 голосов
/ 07 июня 2018

Что я могу думать, это

var i;
for (i = 1; i < 8; i++) { 
  let a[i] = $('[name="answer['+i+']"]:checked').val();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...