简体   繁体   中英

How can i set the attribute of an element in MVC

my view:

<........id="S" labelPos="1" labelText=""/>

I want to set the value for labelText dynalically from the controller. i have tried the following but it did not work:

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

                }

Please change your document.getElementsByTagName("S"); to document.getElementById("S") see if it works.

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

                }

First query your elements in DOM, querying in loop is not good practice, so:

var elements = document.getElementsByTagName("span");//span is example element

Or:

var elements = document.quertSelectorAll("selector");//your elements by selector

Use it in loop

for (var i = 0; i < elements.length; i++) {


     elements[i].setAttribute("labelText", labelText[elements[i].getAttribute("labelPos")].StreetName);

}

I came to the conclusion that Your labelPos attribute is index of labelText array, this would be logical. So in above code I set attrbute from labelText array by labelPos value as key.

Second possibility if DOM elements are in the same order as labelText array:

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

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM