Javascript 通过jQuery对象循环
我有一个包含jQuery对象的关联数组,我想循环它来设置每个对象的值 我对JavaScript/jQuery还比较陌生,但这是我在没有任何运气的情况下尝试的:Javascript 通过jQuery对象循环,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个包含jQuery对象的关联数组,我想循环它来设置每个对象的值 我对JavaScript/jQuery还比较陌生,但这是我在没有任何运气的情况下尝试的: var inputs = [ { key: "firstName", val: $("#signup input[name=firstName]") }, { key: "lastName", val: $("#signup input[name=lastName]") }, {
var inputs = [
{ key: "firstName", val: $("#signup input[name=firstName]") },
{ key: "lastName", val: $("#signup input[name=lastName]") },
{ key: "email", val: $("#signup input[name=email]") },
{ key: "confirmationEmail", val: $("#signup input[name=confirmationEmail]") },
{ key: "password", val: $("#signup input[name=password]") },
{ key: "terms", val: $("#signup input[name=terms]") }
];
inputs.each(function() {
$(this).val("test");
});
在较新的浏览器中,您不需要jQuery:
inputs.forEach(function(input) {
console.log("key is " + input.key);
input.val.val("test");
});
.forEach方法是内置的。如果必须使用jQuery.s.each`则如下所示:
$.each(inputs, function(index, input) {
console.log("key is " + input.key);
input.val.val("test");
});
请注意,jQuery$.each调用回调函数时,元素的索引作为第一个参数,元素本身作为第二个参数。原生的.forEach按相反的顺序传递
最后,请注意,您可以使用设置signup元素下的所有值
$("#signup input").val("test");
试试这个:
$.each(inputs, function(){ $(this).val("test")});
输入是一个数组,不是jQuery对象,所以不能对其应用each方法。但是,您可以改为使用$.each函数,但您仍然无法将val应用于项目本身,因为它们是普通对象。您是否知道,您只需要一个选择器即可遍历所有项目?为什么要使用数组?