【发布时间】:2015-04-14 11:45:43
【问题描述】:
我创建了多个输入字段:
<div class="form-text-field first-name field-group">
<input data-index="1" type="text" id="firstName1" class="signup-input firstName" name="first[1]" placeholder="">
</div>
<div class="form-text-field email field-group">
<input type="text" data-index="1" id="inputMail1" class="signup-input text-value ignore" name="email[1]" placeholder="${message(code:"signup.redesign.placeholder.eg.email")}"/>
<span class="common-sprite disNone sign-up-cross first clone"></span>
</div>
我在 JS 文件中有一个代码可以克隆每个输入。
我必须从输入的值创建数组(一个用于电子邮件,一个用于名字)。
函数如下:
var arrEmail = []
var arrName = []
function add() {
var obj = {};
var partner = {}
$('.email input[type="text"]').each(function() {
obj[this.data-index] = this.value;
});
arrEmail.push(obj)
$('.first-name input[type="text"]').each(function() {
partner[this.data-index] = this.value;
});
arrName.push(partner)
console.log(arrEmail[0])
}
我没有成功获取这段代码中的数组。我该如何解决?
【问题讨论】:
-
标识符不能有减号,尽量使用
$(this).data('index'); -
使用
$(this).data('index')或$(this).attr('data-index') -
你可以像
arrEmail = $('.email input[type="text"], .first-name input[type="text"]').map(function({ return $(this).val(); }).get();这样使用地图 -
你需要数组索引吗?为什么不将元素推送到数组?喜欢
$('.email input[type="text"]').each(function(){ arrEmail.push($(this).val()); });。 -
标签: javascript jquery html arrays input