Мне нужен совет по замене текста с помощью jQuery. У меня есть шаблон, который выглядит так, и он строит тележку для покупок:
{foreach from=$cart.products item=product}
<div class = "product">
<span class = "product-image"><img src = "{$product.cover.small.url}"></span>
<div class = "product-details">
<h2 class = "name-header">{$product.name}</h2>
<div class = "product-quantity-details">
<span class = "quantity">{$product.quantity}</span>
Это даст мне контейнер для каждого продукта, есть еще элементы после и до. У меня есть кнопки, с помощью которых можно увеличивать или уменьшать количество (.product-quantity-details .quantity). Я использую jQuery для отправки запроса AJAX:
document.getElementById('link1').addEventListener('click', function(ev){
ev.preventDefault();
var html ;
$.ajax({
url: this.href,
type: "GET",
dataType: "html",
success: function(data) {
html = $(data).find('.product-quantity-details .quantity').html();
console.info(html);
$(".product-quantity-details .quantity").text(html);
}
});
});
Сервер возвращает HTML-представление всей корзины (включая другие товары, не показанные в приведенном выше коде). Я не могу просто заменить контейнер ответом, потому что есть загруженные изображения, и они не отображаются, если я использую jQuery.replaceWith(). Так что в настоящее время я могу обновить только одно количество.
Есть ли способ обновить каждую величину, поэтому получить массив значений из $(data).find('.product-quantity-details .quantity').html();, где я могу выполнить итерацию и заменить существующий текст в HTML?
Или есть лучший способ попасть в тюрьму (обновить любое количество количеств в моем HTML).
Я думал просто использовать html = $(data).find('.product-quantity-details .quantity');, есть ли гарантия, что этот массив имеет порядок элементов HTML?
Нет, если я заменю их и не перезагружу страницу, они не будут доставлены?
ну почему он не возвращает правильный HTML с правильными URL-адресами для этих изображений? Это была бы проблема, которую я бы исследовал в этом сценарии. Похоже, вы пытаетесь создать обходной путь вместо решения основной проблемы.
Нет, если я просто заменяю HTML, он работает правильно, изображения не загружаются, если я заменяю только HTML, или я здесь ошибаюсь?
«если я просто заменяю HTML, все работает правильно, изображения не загружаются, если я заменяю только HTML» .... извините, это не имеет смысла. Кажется, вы говорите о «замене HTML» в обеих ситуациях. Какая разница? Я не уверен, что вы пытаетесь сказать.



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


просто использовать, я не встречал ни одного случая, когда порядок элементов html не поддерживался. Также у вас есть свойство index, которое даст номер позиции.
html = $(data).find('.product-quantity-details .quantity');
"изображения загружены, и они не отображаются, если я использую jQuery.replaceWith ()" ... почему бы и нет? Ссылки на изображения, возвращаемые вызовом ajax, неверны или что-то в этом роде?