jquery $ .each给了我一个没有hasClass方法的对象

时间:2012-10-23 19:24:36

标签: javascript jquery

我正在尝试使用类required迭代一组项目。我想我必须错误地使用$.each函数。

function required(address) {
    //object to hold elements not passing validation tests
    var pass = true;
    $('.required').each(function(index, elem){
        console.log(elem);
        //check if it has the class indicating it is an email
        if (elem.hasClass('re')) {
            var validEmail = validateEmail(address.email);
            if (!validEmail){
                $(this).addClass('nv'); 
            }

        }
      });
  }

我看到控制台中的元素是 <input type=​"text" id=​"name_input" class=​"pr required">​

然后是错误 Uncaught TypeError: Object #<HTMLInputElement> has no method 'hasClass'

该对象如何没有hasClass方法?

3 个答案:

答案 0 :(得分:9)

您的第一个提示应该是对象是#<HTMLInputElement>而不是jQuery对象。使用$(elem).hasClass('re');

答案 1 :(得分:2)

你的代码中的

elem是一个DOM Element对象,如果你想使用jQuery方法,你应该首先创建一个jQuery对象:

if ($(elem).hasClass('re')) {

答案 2 :(得分:1)

您将类.re作为jQuery选择器的一部分并保存if / then:

function required(address)
{
    //object to hold elements not passing validation tests
    var pass = true;
    $('.required.re').each(function(index, elem) {
        console.log(elem);
        var validEmail = validateEmail(address.email);
        if (!validEmail){
            $(this).addClass('nv'); 
        }
    });
}