Возможно ли создавать переменные динамически с помощью Javascript? - PullRequest
0 голосов
/ 17 мая 2019

У меня следующая проблема: Я должен создать Veiables, например, такой:

var qrcode_1 = my_CreateQRcode(document.getElementById("qrcode_1"));
var qrcode_2 = my_CreateQRcode(document.getElementById("qrcode_2"));
var qrcode_3 = my_CreateQRcode(document.getElementById("qrcode_3"));
.....

Число переменных может быть от 1 до 60 .. Возможно ли динамическое создание этих переменных в зависимости от количества фактически необходимых переменных. я должен вывести 60 переменных в коде?

Ответы [ 3 ]

1 голос
/ 17 мая 2019

Вместо этого вы можете использовать массив:

var qrcodes = Array.from(
  { length: 60 },
  (_, i) => my_CreateQRcode(document.getElementById('qrcode_' + (i + 1)))
)

Но было бы лучше использовать классы вместо числовых идентификаторов, чтобы вы могли сделать что-то вроде

var qrcodes = Array.from(
  document.querySelectorAll('.qrcode'),
  my_CreateQRcode // second argument to Array.from is a mapper function
);

Примечаниечто подобные массиву структуры имеют нулевой индекс , а не один индекс, поэтому, например, qrcodes[0] будет соответствовать первому найденному элементу и отправленному через него. my_CreateQRcode.

0 голосов
/ 17 мая 2019

Вы можете создать класс для вашего HTML-элемента.

Пример:

In HTML->
    <div class="qrcode"></div>....<div class="qrcode"></div>
IN JS ->
    var qrcodes= document.getElementsByClassName(".qrcode");
    for(i=0;i<=qrcodes.length;i++){
           log(qrcodes[i]);
        }
0 голосов
/ 17 мая 2019

Если по какой-либо причине вам действительно нужно столько переменных (как указывали другие, вам действительно следует вместо этого использовать массив), вот как вы можете этого добиться:

for (let i = 60; i > 0; i--) { 
  window["qrcode_"+i] = my_CreateQRcode(document.getElementById("qrcode_"+i)) 
};

Обратите внимание, что в этом конкретном сценарии это перезаписывает уже существующие переменные (браузер автоматически создает глобальную переменную для каждого элемента с уникальным значением id под именем этого значения, которое содержит ссылку на этот элемент ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...