【问题标题】:How can i set the attribute of an element in MVC如何在 MVC 中设置元素的属性
【发布时间】:2016-08-22 21:27:48
【问题描述】:

我的看法:

<........id labelpos="1" labeltext="">

我想从控制器动态设置 labelText 的值。我尝试了以下方法,但没有奏效:

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

                }

【问题讨论】:

  • keys 是什么? labelText 是什么?它包含什么?
  • 问题是它不知道 d 是什么
  • labelText 是属性名我想要的是 "labelText" = "c 的值"
  • 这是我从你那里看到的第二个模糊的问题。在问另一个问题之前,请阅读How to create a Minimal, Complete, and Verifiable example
  • “在 MVC 中”是什么意思?你在谈论 ASP.NET MVC 吗?因为那个标签是asp.net-mvc,而不是model-view-controller。如果您所做的只是更新 JavaScript 中的内容,这也是多余的。

标签: javascript jquery dom setattribute


【解决方案1】:

请将您的 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);

                }

【讨论】:

  • 这是正确的,但循环会在每次迭代中重置属性!代码在逻辑上被破坏了。
【解决方案2】:

首先在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);

}

【讨论】:

  • labelPos 与此无关。有没有不使用 labelpos 的方法?
  • 我更新了答案,如果顺序相同,这将起作用。
  • 如何为数组中的每个 streetName 执行此操作。我将需要 2 个嵌套的 for 循环。一个用于获取元素,一个用于为数组中的每个项目设置属性
  • 请提供您的数据结构和html结构,然后我会尝试帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2016-01-01
  • 2019-09-24
  • 2011-03-31
  • 2021-11-08
相关资源
最近更新 更多