我在一个页面上有多个输入,它们都有相同的类名authority-email
。使用jquery,我使用以下方法从所有输入获取值:
var emailObj = {};
$("input[class=authority-email]").each(function () {
var email = $(this).val()
emailObj = email;
console.log(emailObj);
});
可以使用jquery删除这些输入并将其添加到dom中。输入中的值也可以编辑。
当输入发生变化(删除、添加、编辑)时,将其值实时传递给My
emailObj
的最佳方式是什么? 最佳答案
当前代码在循环的每次迭代中将emailObj
从对象更改为字符串,而不是修改对象本身的属性。还要注意,可以使用.
样式选择器按类匹配元素。
为了达到您的要求,可以使用map()
从jquery对象中的一组元素创建一个数组。然后,您可以将其分配给emailObj
对象的必需属性。例如:
var emailObj = {};
emailObj.emails = $("input.authority-email").map(function () {
return this.value;
});
console.log(emailObj.emails); // = [ '[email protected]', '[email protected]', ... ]
要在“实时”中更新对象,请挂钩到输入本身的
change
和keyup
事件:var emailObj = {};
$("input.authority-email").on('change keyup', function() {
emailObj.emails = $("input.authority-email").map(function () {
return this.value;
});
console.log(emailObj.emails); // = [ '[email protected]', '[email protected]', ... ]
});