2016-08-22 3 views
1

мой взгляд:Как я могу установить атрибут элемента в MVC

< ........ ID = "S" labelPos = "1" LabelText = "" />

Я хочу установить значение для tagText динамически из контроллера. я попытался следующие, но это не сработало:

   for (var i = 0; i < keys.length; i++) { 
        var c = labelText[keys[i]].StreetName; 
        var d = document.getElementsByTagName("S"); 
        d.setAttribute("labelText", c); 

       } 
+0

Что такое 'keys'? Что такое 'labelText'? Что он содержит? – Shyju

+0

проблема в том, что он не знает, что такое d is – sarah

+0

labelText - это имя атрибута, которое я хочу, это «labelText» = «значение c» – sarah

ответ

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

       } 
+0

nope не работает – sarah

+0

Это правильно, но цикл сбрасывает атрибут на каждой итерации! Код логически сломан. – undefined

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 массив, это было бы логично. Поэтому в приведенном выше коде я устанавливаю attrbute от 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); 

} 
+0

labelPos не имеет отношения к этому. есть ли способ сделать это без использования меток? – sarah

+0

да я добавлю его в код –

+0

Я обновил свой ответ, это будет работать, если заказ будет таким же. –