2015-06-22 2 views
0
$("#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») много раз, это то, что я получил:JQuery заменить предыдущую .После когда значение изменилось

above code result

это не то, что я хочу!

как заменить предыдущий. После изменения («#paragraphDuration») значения с новым?

спасибо

ответ

2

Вам необходимо перезаписать старое значение. Лучше не использовать .after для установки текста, просто используйте метод .text() на предопределенном элементе span или около того.

Так, например:

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") 
     : "" 
    ); 
});