Итак, ваша проблема с (как вы сказали) ломаной линией:
$('#text').text($(this).text());
Это найдет первый элемент с идентификатором 'text' и установит текст этого элемента с выбранным вамитекст.Конечно, когда вы добавляете несколько правил, у вас есть несколько диапазонов с идентификатором «текст» (что, в любом случае, не очень хорошая идея. См. Здесь: https://stackoverflow.com/a/44009054/1178830).
Вы можете назначить им каждый свой идентификатор (например, text1, text2 ...) или вы можете попытаться найти элемент без идентификатора, заменив строку выше на что-то вроде этого:
$(this).parent().siblings('button').find('span').text($(this).text());
Это, конечно, сильно зависит от структуры элементов.Вы добавляете в переменную 'button'.