什么错了?控制台说undefined不是一个函数。我的简单jquery不起作用
var Input = $('#Formular :input');
for(i =0; i<Input.length; i++){
Input[i].val(Daten[x-1][i]);
}
什么错了?控制台说undefined不是一个函数。我的简单jquery不起作用
var Input = $('#Formular :input');
for(i =0; i<Input.length; i++){
Input[i].val(Daten[x-1][i]);
}
.val()
是一个jQuery函数,但是您可以在DOM元素上使用它。
您看到,在做Input[i]
时,您会看到HTML元素,而不是包含该元素的jQuery对象。
你要么使用香草JS的方式来改变值:
Input[i].value = Daten[x-1][i];
或者使用.eq
获取该元素的jQuery对象:
Input.eq(i).val(Daten[x-1][i]);
你也可以使用jQuery的.each
:
var Input = $('#Formular :input').each(function(i){
this.value = Daten[x-1][i];
});
输入已分配到输入变量,并且在for循环中,您无法使用这些变量访问.val()函数。相反,您需要分配使用的值:
Input[i].value =Daten[x-1][i];
因此,扩展我在我的评论中所说的内容,您可以执行以下操作。
//jQuery
var Inputs = $('#Formular :input');
Inputs.each(function(i){
$(this).val("someval-" + i);
//$(this).val(Daten[x-1][i]);
});
//Javascript (+ a bit of jQuery, the way you did)
var Inputs = $('#Formular :input');
for(i =0; i<Inputs.length; i++){
Inputs[i].value = "some--val-" + i;
}
时,表示为错误的来源是什么线?也许你忘了包含jQuery,而$是未定义的。 – doldt 2015-03-25 12:38:28
可能是因为'var Input = $('#Formular:input');'在这个$没有定义 – 2015-03-25 12:39:37
'Input [i]'是没有'val'的DOM对象所以,你可能必须做'输入[I]。价值= “东西”' – lshettyl 2015-03-25 12:43:40