Javascript jquery$。每个都给我一个没有hasClass方法的对象

Javascript jquery$。每个都给我一个没有hasClass方法的对象,javascript,jquery,Javascript,Jquery,我试图用类required迭代一组项。我想我一定是使用了$。每个功能都不正确 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 th

我试图用类
required
迭代一组项。我想我一定是使用了
$。每个
功能都不正确

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'); 
            }

        }
      });
  }
我看到控制台中的元素是

然后是错误
UncaughtTypeError:对象没有方法“hasClass”


该对象怎么可能没有hasClass方法呢?

elem
在您的代码中是一个DOM元素对象,如果要使用jQuery方法,您应该首先创建一个jQuery对象:

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

您的第一个提示应该是对象是
#
,而不是jQuery对象。使用
$(elem).hasClass('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'); 
        }
    });
}

它不应该是$(elem).hasClass(“..”)?啊哈,是的。我现在明白了,这是一个非常明显的暗示。为什么jquery不返回jquery对象?多谢!因为您正在迭代DOM元素,所以它将返回一个DOM元素。您需要从该DOM元素创建jQuery对象:)