Jquery标签如何" insertAfter"如果元素存在,一次又一次不重复显示一次?

时间:2016-05-20 07:52:52

标签: javascript jquery

请向我建议我的问题的答案:Jquery标签" insertAfter"如果元素存在,则只显示一次,不会一次又一次地重复?

$(document).ready(function (){$(".ddd").keypress(function (e) {

 if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
    $("<span style='color:red'>insert only character</span>").insertAfter( $(this)).show().fadeOut("slow");   
     return false;
}
 });
 });

1 个答案:

答案 0 :(得分:0)

尝试在选择器上使用jQuery的.length属性来检查它是否存在。如果没有,请插入:

$(document).ready(function() {
  $(".ddd").keypress(function(e) {
    if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {

      if (!$("#err").length)
        $("<span id= 'err' style='color:red'>insert only character</span>").insertAfter($(e.target));

      $("#err").show().fadeOut("slow");
      return false;
    }
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="ddd"></input>