我的HTML表单中有几个带有first_name[]
名称的文本字段。我想用jQuery填充这些字段。
我认为以下内容会将“Mike”放在第一个元素中,然后将“Samantha”放在第二个元素中:
jQuery('[name="first_name\\[\\]"]').attr('value', 'Mike');
jQuery('[name="first_name\\[\\]"]').attr('value', 'Samantha');
相反,这段代码首先将“Mike”放在所有元素中,然后将“Samantha”放在所有元素中。“实现它的正确方法是什么?
答案 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]);
}
您只需向数组添加名称即可将其添加到表单中。显然,通过添加长度检查可以使这更加健壮,这样你就不能尝试添加名称来形成不存在的元素,但是你明白了。