2012-10-19 25 views
-1

HTMLjQuery的---选择所有的文本框定类

<input type="text" class="required" /> 

现在我想选择这个定的类名称的所有文本框,并要检查特定文本框中是否有一个叫另一个类“错误”,我正在动态添加。

$(".required).each(function() { 
    if(this.hasClass('error'){ 
      alert("has error class"); 
    } 
} 

但没有按预期工作..怎么办?

回答

3

你有一个错字缺少",你也需要包装this为jQuery对象

$(".required").each(function() { 
    //Iterate through each element 
    if($(this).hasClass('error')){ 
      alert("has error class"); 
    } 
}); 
1

您有许多语法错误。

  1. 闭幕选择的报价失踪。
  2. 使用$(this)而不是hasClass。 As this represents javascript object while $(this) is jquery object and hasClass is jquery function not javascript。
  3. if语句的结束括号缺失。
  4. 每个函数的结束括号也缺失。

Live Demo

$(".required").each(function() { 
    if ($(this).hasClass('error')) { 
     alert("has error class"); 
    }  
})​; 
+0

原因下降投票? – Adil

+0

当我看到你的答案时,代码是相同的。正确的建议现在,虽然你的代码不显示所有的修复 –

+0

是错过了一些,现在更新了代码,谢谢指出。 – Adil

-1

你有一个错误到你的代码,尝试这个:

$(".required").each(function() { 
    if($(this).hasClass('error'){ 
      alert("has error class"); 
    } 
} 
+0

downvote的原因是什么? –

0

无需循环使用.each

$(".required.error")会给你所有的元素都有两个类。

+0

你的回答放在一边,你为什么编辑这个问题来解决这个错误? – Daedalus

+0

@达达鲁斯 - 纠正了这个问题中的错字。为什么? – techfoobar

+0

那么,你无法知道原始代码中是否存在该打字错误。就目前而言,你可能会模糊这条线,尽管OP的接受显示他们在原始代码中确实存在该错误。如果我是你,我会扭转该编辑。 – Daedalus

0

你有一个语法错误,即你在你的hasClass电话后缺少一个右括号:

$(".required").each(function() { 
    if($(this).hasClass('error')){ 
      alert("has error class"); 
    } 
} 
2

尝试这种解决方案:

<input type="text" class="required" /> 
<input type="text" class="required" /> 
<input type="text" class="required error" /> 

<script> 
     $('.required').each(function(index, value){ 
      if($(value).hasClass('error')){ 
       alert("has error class"); 
      } 
     }); 
</script>