我正在循环结果并将它们写成html。
我想在等号的最左边增加数字1 - 绑定 - A_Inside_Bus_1_div,A_Inside_Bus_2_div,A_Inside_Bus_3_div等..
我应该怎么做?
for (var i = 0; i <= 4; i++) {
A_Inside_Bus_1_div.innerText = i + ". " + snapshot.child("0/A_Inside_Bus " + i).val();
A_Inside_Bus_1_Comments_div.innerText = snapshot.child("0/A_Inside_Bus " + i + " Comments").val();
}
答案 0 :(得分:1)
如果这些变量实际上是DIVsm的ID,并且取决于ID转换为全局变量的事实,您可以使用document.getElementById()
来访问它们。
for (var i = 0; i <= 4; i++) {
document.getElementById('A_Inside_Bus_' + (i+1) + '_div').innerText = i + ". " + snapshot.child("0/A_Inside_Bus " + i).val();
document.getElementById('A_Inside_Bus_' + (i+1) + '_Comments_div').innerText = snapshot.child("0/A_Inside_Bus " + i + " Comments").val();
}
答案 1 :(得分:0)
这样做:
if let name = bestgame.text,
!name.isEmpty {
label.text = "hello" + name
}
在继续其余操作之前,例如编辑var A_Inside_Bus_div = [];
var A_Inside_Bus_Comments_div = [];
,您需要创建这些对象。只有在那之后你才能做到:
.innerHTML
正如你所说,这只是一个关于你应该如何“去”的想法。
答案 2 :(得分:0)
不要这样做。试图让变量名做你正在尝试做的只会导致不必要的混乱代码。
将所有元素粘贴到数组中:
var elems = [
A_Inside_Bus_1_div
A_Inside_Bus_2_div
...
];
var comments = [
A_Inside_Bus_1_Comments_div
A_Inside_Bus_2_Comments_div
...
];
然后只需索引数组:
for (var i = 0; i <= 4; i++) {
elems[i].innerText = i + ". " + snapshot.child("0/A_Inside_Bus " + i).val();
comments[i].innerText = snapshot.child("0/A_Inside_Bus " + i + " Comments").val();
}
这是您如何使用当前设置执行此操作的示例。请注意,它可以清理。如果elems
数组的每个元素总是在comments
中有一个伙伴,那么将它们组合在一个对象中会更有意义,并且只有一个数组。
另请注意,在循环中填充数组更有意义。为了简洁起见,我只是在这里对数组进行了硬编码。我不确定你最初是如何创建这些元素的。它们应该被创建并直接放入数组中,而不是命名它们并在以后添加它们。
答案 3 :(得分:0)
有几种方法可以做到这一点,但它们往往涉及一些非常糟糕的习惯,比如使用eval
或将变量附加到全局对象,以便您可以使用字符串访问它们:
var a = 1;
window['a']; //1
但是有更好的选择,最常见的可能是将它们存储在等长阵列中:
var divs = [div1, div2, div3];
var items = ['cat', 'dog', 'fish'];
items.forEach(function(element, index){
divs[index].innerText = items[i];
});
您还可以查看构建单个对象数组:
var objects = [{div: div1, item: 'cat'}, {div: div2, item: 'dog'}, {div: div3, item: 'fish'}];
for object in objects {
object.div.innerText = object.item;
}