0

我正在使用 jquery 的 each 循环遍历表单中的所有输入文本字段。共有 4 个输入字段。但我收到以下错误

Cannot call method 'toLowerCase' of undefined in jquery.js:2153

这是我的代码

loadViews: function (view, flag) {
            if( flag ) {
                if ( View.validate() ) {
                    $('.search').animate({left: '-350px'}, 100, 'easeInOutQuad', function () {
                        container.empty().load(view + '.html');
                    });
                } else {

                }
            } else {
                container.empty().load(view + '.html');
            }
        },
        validate: function () {
            $.each('#form input[type="text"]', function (i) {
                console.log($(this).val());
            });
            return false;
        }

我究竟做错了什么?

4

1 回答 1

1

您正在传入一个selectorwhen$.each需要一个集合。从 API 文档:

$.each() 函数与 $(selector).each() 不同,后者用于以独占方式遍历 jQuery 对象。$.each() 函数可用于迭代任何集合,无论是映射(JavaScript 对象)还是数组。

要修复它,请执行以下操作:

$('#form input[type="text"]').each(function (i, elem) {
    console.log($(this).val());
});

或这个:

var inputs = $('#form input[type="text"]');
$.each(inputs, function (i, elem) {
    console.log($(this).val());
});
于 2012-11-04T15:51:49.277 回答