我的观点:
< ........ id =“S”labelPos =“1”labelText =“”/>
我想从控制器以dynalically设置labelText的值。我尝试过以下但是没有用:
for (var i = 0; i < keys.length; i++) {
var c = labelText[keys[i]].StreetName;
var d = document.getElementsByTagName("S");
d.setAttribute("labelText", c);
}
答案 0 :(得分:0)
请将document.getElementsByTagName("S");
更改为document.getElementById("S")
,看看它是否有效。
for (var i = 0; i < keys.length; i++) {
var c = labelText[keys[i]].StreetName;
var d = document.getElementById("S");
d.setAttribute("labelText", c);
}
答案 1 :(得分:0)
首先在DOM中查询你的元素,查询循环不是好习惯,所以:
var elements = document.getElementsByTagName("span");//span is example element
或者:
var elements = document.quertSelectorAll("selector");//your elements by selector
在循环中使用
for (var i = 0; i < elements.length; i++) {
elements[i].setAttribute("labelText", labelText[elements[i].getAttribute("labelPos")].StreetName);
}
我得出的结论是, labelPos 属性是 labelText 数组的索引,这是合乎逻辑的。因此,在上面的代码中,我将 labelText 数组中的 labelPos 值设置为密钥。
如果DOM元素与labelText数组的顺序相同,则为第二种可能性:
for (var i = 0; i < elements.length; i++) {
//we take i element in DOM and set it StreetName from i element in labelText array
elements[i].setAttribute("labelText", labelText[i].StreetName);
}