如何在MVC中设置元素的属性

时间:2016-08-22 21:27:48

标签: javascript jquery dom setattribute

我的观点:

< ........ 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);

                }

2 个答案:

答案 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);

}