我简单的jquery不起作用

时间:2015-03-25 12:35:31

标签: javascript jquery html css

什么错了?控制台说undefined不是一个函数。

    var Input = $('#Formular :input');
for(i =0; i<Input.length; i++){
    Input[i].val(Daten[x-1][i]);
}

3 个答案:

答案 0 :(得分:2)

.val()是一个jQuery函数,但是你在DOM元素上使用它。

您可以看到,在执行Input[i]时,您将获得HTML元素,而不是包含该元素的jQuery对象。

您可以使用vanilla 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];
});

答案 1 :(得分:0)

输入已分配到Input变量,而在for循环中,您无法使用这些变量访问.val()函数。相反,您需要使用以下方式分配值:

Input[i].value =Daten[x-1][i];

答案 2 :(得分:0)

所以,扩展我在评论中所说的内容,你可以做到以下几点。

//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;
}

Take a look at the demo.