У меня есть следующая строка кода:
tpj("#totalcostinclship").empty().append( "<span data-src='"+pricefinal+"' id='totalcostinclship'></span>" ).text(pricefinal);
Сначала он очищает существующий элемент, а затем добавляет новый элемент. pricefinal в этом случае содержит 245, но когда я проверяю свой HTML, я вижу следующее:
<span data-src = "220" id = "totalcostinclship">245</span>
.text применяется, а data-src нет. Почему это могло быть? 220 — это значение data-src при загрузке страницы, поэтому перед запуском любого события jQuery.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


var pricefinal = 245;
var tpj = $.noConflict();
tpj("#totalcostinclship").empty().append("<span data-src='" + pricefinal + "' id='totalcostinclship'></span>").text(pricefinal);
tpj("#totalcostinclship").attr('data-src',pricefinal);<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id = "totalcostinclship"></div>Добавьте эту строку
tpj("#totalcostinclship").attr('data-src',pricefinal);
после твоего js. Вот так ->
tpj("#totalcostinclship").empty().append( "<span data-src='"+pricefinal+"' id='totalcostinclship'></span>" ).text(pricefinal);
tpj("#totalcostinclship").attr('data-src',pricefinal);
Спасибо, это сделало работу!
Предполагая, что
tpjявляется ссылкой на jQuery, я не могу воспроизвести вашу проблему. Данный код работает абсолютно нормально: jsfiddle.net/q29Lgwu5. Я могу только предположить, что у вас есть какая-то другая логика, которая влияет на атрибут данных после добавления нового элемента.