我在Javascript中有一个函数,当单击一个按钮时会生成动态<input>
元素。元素得到结构:
<input name="array[0]" value="Value" />
<input name="array[1]" value="Value" />
我需要做的是通过jQuery,替换每个元素的值。如果名称类似于name="array[]"
,这将非常简单,因为我可以调用:
$("input[name='array[]']").each(function(e) {
$(this).val("New Value");
})
要全部替换它们,但此功能不适用于这些name="array[N]"
输入。我希望我可以使用第一种方法,但我需要在后端使用[N]
索引,并且更改它会破坏几乎所有功能。
另外,我已经让一个JSFiddle演示了这个问题,随便用它进行调试。
答案 0 :(得分:2)
您可以使用attribute starts with,attribute ends with或attribute contains选择器
$("input[name^='array[']") // starts with
$("input[name$=']'") // ends with, probably not very useful here
$("input[name*='array']") // contains
答案 1 :(得分:2)
您可以使用属性starts with selector来匹配输入。
http://api.jquery.com/attribute-starts-with-selector/
$("input[name^='array']").each(function(e) {
$(this).val("New Value");
});
答案 2 :(得分:2)
要直接回答您的问题,您可以使用带有(^)选择器"input[name^='second[']"
的开头。但是,我建议使用一个类,然后使用适当的选择器