带有跳过索引的数组输入的jQuery更改值

时间:2015-02-04 20:27:46

标签: jquery html

我在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演示了这个问题,随便用它进行调试。

JSFiddle

3 个答案:

答案 0 :(得分:2)

您可以使用attribute starts withattribute ends withattribute 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[']"的开头。但是,我建议使用一个类,然后使用适当的选择器

DEMO: http://jsfiddle.net/trex005/46o1npab/8/