1

html

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

现在我想选择具有这个给定类名的所有文本框,并想检查特定文本框是否有另一个名为“error”的类,我正在动态添加它。

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

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

4

6 回答 6

4

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

$(".required").each(function() {
     //Iterate through each element
     if($(this).hasClass('error')){
          alert("has error class");
     }
 });
于 2012-10-19T06:52:34.550 回答
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>
于 2012-10-19T07:05:59.720 回答
1

你有很多语法错误。

  1. 选择器缺少结束引号。
  2. 与 hasClass 一起使用$(this),而不是 this。作为this represents javascript objectwhile$(this) is jquery objecthasClass is jquery function不是javascript。
  3. 缺少 if 语句的右括号。
  4. 每个函数的右括号也不见了。

现场演示

$(".required").each(function() {
    if ($(this).hasClass('error')) {
        alert("has error class");
    }     
})​;
于 2012-10-19T06:52:28.283 回答
0

无需循环使用.each.

$(".required.error")将为您提供具有这两个类的所有元素。

于 2012-10-19T06:54:14.227 回答
0

您有语法错误,即您在hasClass通话后缺少右括号:

 $(".required").each(function() {
     if($(this).hasClass('error')){
          alert("has error class");
     }
 }
于 2012-10-19T06:55:02.940 回答
-1

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

$(".required").each(function() {
     if($(this).hasClass('error'){
          alert("has error class");
     }
 }
于 2012-10-19T06:53:01.980 回答