我有以下问题: 我必须创建这样的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。 ist可以根据实际所需变量的数量动态创建这些变量。 我要确定代码中的60个变量?
答案 0 :(得分:1)
您可以改用数组:
var qrcodes = Array.from(
{ length: 60 },
(_, i) => my_CreateQRcode(document.getElementById('qrcode_' + (i + 1)))
)
但是最好使用类代替数字索引ID,因此您可以执行类似的操作
var qrcodes = Array.from(
document.querySelectorAll('.qrcode'),
my_CreateQRcode // second argument to Array.from is a mapper function
);
请注意,类似数组的结构是零索引,而不是单索引,因此,例如,qrcodes[0]
对应于找到的第一个元素并通过发送。{{1 }}。
答案 1 :(得分:0)
如果出于某种原因您确实需要那么多变量(如其他人所指出的,您实际上应该使用数组),则可以通过以下方式实现这一点:
for (let i = 60; i > 0; i--) {
window["qrcode_"+i] = my_CreateQRcode(document.getElementById("qrcode_"+i))
};
请注意,在这种特定情况下,这将覆盖已经存在的变量(浏览器会自动为每个元素创建一个全局变量,该变量在该值的名称下具有唯一的id值,该变量具有对该元素的引用)。
答案 2 :(得分:0)
您可以为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]);
}