达到某个数字时添加类

时间:2017-04-13 02:59:16

标签: jquery css

我正在尝试添加一个类,并在字符数达到某个数字时更改文本的颜色。 请帮我弄清楚为什么没有添加课程,颜色没有变化。

   <body>
    <form>
        <div class="form-group">
            <label for="description">Description:</label>
            <textarea class="form-control" id="description"></textarea>
            <span id="char">0</span> characters
        </div>
    </form>
   </body>

<script>
$('#description').keyup(function(){
    var maxLength = 155;
    var length = $(this).val().length;
    $('#char').text(length);
    if(length > maxLength) {
         $('char').addClass("warning")
    }
});
</script>

在CSS中,警告颜色为:红色

谢谢!

4 个答案:

答案 0 :(得分:2)

只有一个小错误。更新您的javascript代码,如下所示。

$('#description').keyup(function(){
  var maxLength = 155;
  var length = $(this).val().length;
  $('#char').text(length);
  if(length > maxLength) {
      $('#char').addClass("warning");
  } else {
      $('#char').removeClass("warning");
  }
});

它将添加“警告”类,因此您可以在该类中添加CSS属性以更改颜色。

答案 1 :(得分:2)

您忘了在选择器中添加#

$('#description').keyup(function() {
  var maxLength = 10;
  var length = $(this).val().length;
  $('#char').text(length);
  if (length > maxLength) {
    $('#char').addClass("warning")
  }
});
.warning {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
  <label for="description">Description:</label>
  <textarea class="form-control" id="description"></textarea>
  <span id="char">0</span> characters
</div>

答案 2 :(得分:1)

更优雅的做法是将toggleClassstate一起使用,这样您就不需要额外的if语句。

&#13;
&#13;
$('#description').keyup(function(){
    var maxLength = 155;
    var length = $(this).val().length;
    $('#char')
      .text(length)
      .toggleClass("warning", length > maxLength);
});
&#13;
.warning {
  color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <div class="form-group">
        <label for="description">Description:</label>
        <textarea class="form-control" id="description"></textarea>
        <span id="char">0</span> characters
    </div>
</form>
&#13;
&#13;
&#13;

答案 3 :(得分:0)

您也可以像这样更改颜色

<script>
$('#description').keyup(function(){
  var maxLength = 155;
  var length = $(this).val().length;
  $('#char').text(length);
  if(length > maxLength) {
      $('#char').css("color", "red");
  } else {
      $('#char').css("color", "black");
  }
});
</script>