jq функция
$( ".new-mark" ).click(function() {
var self = $(this);
var modal = $('#mark-modal');
$('.mark-input').val('');
$('.mark-input').change(function() {
self.find('span').html($(this).val());
});
});
которая привязана к элементу
@foreach ...
<td class="new-mark" style="display:none;">
<span></span>
</td>
@endforeach
по первому вызову self.find('span') возвращает 1 элемент, по второму 2, и так далее. Все спаны имеют одинаковый текст, а каждый должен иметь свой.
Совет дня: не назначайте обработчики событий внутри других обработчиков событий.
$(function() {
var self;
$( ".new-mark" ).click(function() {
self = $(this);
$('.mark-input').val('');
});
$('.mark-input').change(function() {
self.find('span').html($(this).val());
});
});
В Вашем коде действие $('.mark-input').change(function() { ... }); выполняется на каждый $(".new-mark").click. То есть для события $('.mark-input').change добавляется новый обработчик. Когда событие $('.mark-input').change происходит, все прикрепленные обработчики выстреливают один за другим.
Весь показанный код следует обернуть в обработчик $(document).ready - это как раз то событие, внутри которого можно/следует назначать обработчики других событий. Тогда переменная self не будет засорять глобальную область видимости.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости