当值改变时,jquery替换之前的.after

时间:2015-06-22 21:58:37

标签: javascript jquery html

$("#paragraphDuration").bind('keyup', function() {

   var fullDuration = $("#fullDuration").val(),
       paragraphDuration = $(this).val();

   $(this).after(function() {
       if ($(this).val() != '') {
           $(this).after(fullDuration - paragraphDuration + " min");
       } else {
           $(this).after("");
       }
   });
});

在我多次改变("#paragraphDuration")之后,这就是我得到的:

above code result

这不是我想要的!

如何在更改("#paragraphDuration")值时使用新值重新显示以前的。?

谢谢

1 个答案:

答案 0 :(得分:2)

您需要覆盖旧值。最好不要使用.after来设置文本,只需在预定义的span元素上使用.text()方法。

例如:

HTML

<input type="text" id="paragraphDuration"><span class="textContainer"></span>

JS

$("#paragraphDuration").bind('keyup', function() {

   var fullDuration = $("#fullDuration").val(),
       paragraphDuration = $(this).val();

   $(this).next('.textContainer').text(
     $(this).val() !== '' 
       ? (fullDuration - paragraphDuration + " min") 
       : ""
   );
});