IE7 Jquery.Each()不起作用

时间:2013-09-20 20:43:49

标签: internet-explorer-7

我正在试图弄清楚这个jquery.each()如何在IE 7上运行:

        var todosOsCampos = $(".validate_mail");

         jQuery.each(todosOsCampos, function(){
            //Verifica e-mail
            email = $(this).val();
            if(email!=''){
                er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
                if(!er.exec(email)) {
                    erro = 1;
                    $(this).css("border", "solid 1px #F00");
                }   
            }
        });

我正在检查电子邮件,但是Ie7无法正常工作

我认为问题已经解决,但我错了。我已经改变了代码,就像user2246674要求我做的那样。

        var todosOsCampos = $(".validate_mail");

        todosOsCampos.each(function(){
            email = this.value;
            console.log(email);
            if(email!=''){
                er = /^[a-zA-Z0-9][a-zA-Z0-9\._-]+@([a-zA-Z0-9\._-]+\.)[a-zA-Z-0-9]{2}/;
                if(!er.exec(email)) {
                    erro = 1;
                    this.style.border = "solid 1px #F00";
                }   
            }
        });

但是IE7正在返回以下消息:

  

此网页出现问题可能会阻止其显示   正常或正常运作。将来......

然后我点击了节目详情按钮:

Line: 528
Char: 5
Error: Object does not support this property or method
     

代码:0

第528行对应于此

  

email = this.value;

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我认为代码可疑 - 并且容易失败 - 因为使用了错误的“每个”。 (但谁知道;可能会发生令人惊讶的事情。)

jQuery.each(例如$.each(array, ..)),正在使用

  

通用迭代器函数,可用于无缝迭代对象和数组。

.each(例如$(selector).each(..)),使用

  

迭代jQuery对象,为每个匹配的元素执行一个函数。

在这种情况下,使用.each迭代jQuery对象,例如:

todosOsCampos.each(function(){ .. })

请记住,$(selector) 始终返回一个jQuery对象,该对象是0个或更多匹配元素的集合。

如果在更正使用情况后问题仍然存在,请使用更多详细信息(包括警告/错误消息)更新帖子。