1

我有一个 asp 应用程序,我必须在其中使用 javascript 来获取元素的值

@for(int i=0; i< Model.Count; i++) {
    <input type="text" value="@Model[i].age" name="age@(i)" />
    HtmlActionLink("new age","Change", new { age = "age" + i.ToString()
});
                                     }

我需要获取每个标签的值agenew { age = "age" + i.ToString()没有用,我必须用脚本 javascript 使用document.getElementsByName方法替换它

我怎样才能修改我的代码来完成这个任务?

4

1 回答 1

2

我会简单地为每个输入元素添加一个类,赋予它一些含义(例如'input-age'):

<input class="input-age" type="text" value="@Model[i].age" name="age@(i)" />

然后您可以按类名选择所有输入,而无需依赖视图引擎中动态分配的名称:

var ages = document.querySelectorAll('input.input-age');

或者,如果您需要查找特定年龄索引的值,而不添加类名:

var ageIndex = 4;
var age = document.querySelector('input[name="age' + ageIndex + '"]').value;

仅供参考,对于 IE,由于该功能,它只能在版本 8 或更高版本中工作querySelectorAll,但您可以使用其他方法。

如果 jQuery 在桌面上,您将无法更改任何内容并使用“开始于”选择器来获取所有“年龄”元素:

var ages = $('input[name^="age"]');

或者,添加类名后:

var ages = $('.input-age');

或者,寻找特定输入的值:

var ageIndex = 4;
var age = $('input[name="age' + ageIndex + '"]').val();

对于最后一个示例,您不需要添加类名;

于 2013-10-07T19:49:03.780 回答