使用jQuery填充HTML数组变量

时间:2014-01-28 14:02:20

标签: jquery html forms

我的HTML表单中有几个带有first_name[]名称的文本字段。我想用jQuery填充这些字段。

我认为以下内容会将“Mike”放在第一个元素中,然后将“Samantha”放在第二个元素中:

jQuery('[name="first_name\\[\\]"]').attr('value', 'Mike');
jQuery('[name="first_name\\[\\]"]').attr('value', 'Samantha');

相反,这段代码首先将“Mike”放在所有元素中,然后将“Samantha”放在所有元素中。“实现它的正确方法是什么?

5 个答案:

答案 0 :(得分:0)

尝试在此处使用 eq()

jQuery('[name="first_name"]:eq(0)').attr('value', 'Mike');
jQuery('[name="first_name"]:eq(1)').attr('value', 'Samantha');

答案 1 :(得分:0)

您正在选择具有该名称的所有元素,因此它自然会为具有该名称的所有元素设置值。 要定位特定元素,请使用.first().last()(或.eq(index))函数。

额外注意:请使用.val(value)

,而不是使用.attr("value", value)

答案 2 :(得分:0)

var names=['mahi','suni','samantha'];
jQuery('[name="first_name\\[\\]"]').each(function(i,e){
    $(this).val(names[i]);
})

答案 3 :(得分:0)

你可以用这个:

jQuery('[name*="first_name"]:eq(0)').val('Mike');
jQuery('[name*="first_name"]:eq(1)').val('Samantha');

答案 4 :(得分:0)

这个怎么样......

var names = ["Mike", "Samantha"];

for (var i = 0; i < names.length; i+++) {
    jQuery("[name^=first_name]").eq(i).val(names[i]);
}

您只需向数组添加名称即可将其添加到表单中。显然,通过添加长度检查可以使这更加健壮,这样你就不能尝试添加名称来形成不存在的元素,但是你明白了。