Есть ли в jQuery способ изменить .html() так, чтобы он добавлял код, а не перезаписывал?

#javascript #html #jquery #dom

#javascript #HTML #jquery #dom

Вопрос:

Я выполняю работу по извлечению данных из API. Я разрабатываю свой код для выполнения нескольких запросов к API, а затем добавляю их в текущий список результатов в моем HTML. Из-за данных, возвращаемых API, нет способа получить все это за один снимок, а затем нарезать его, мне нужно получить его несколькими снимками.

Посмотрите на этот код:

 function renderResults(results) {
    return $('#results-section').html(genResults(results));
}
  

Функция renderResults() вызывается внутри моего вызова API

 .fetch(URL)
   .then([code that is working properly])
   .then(call renderResults() here)
  

Я записал в консоль результаты своего API и протестировал вызов API в Postman, поэтому я знаю, что он создан правильно — просто пытаюсь дать правильный контекст.

Для проверки, results являются ли данные из API, results-section как помечен контейнер результатов в моем HTML, и функция genResults(results) создает шаблон HTML со значениями из results вставленных в него.

При использовании .html он перезаписывает все в разделе, указанном непосредственно перед этим. Я ищу способ добавить шаблон HTML, сгенерированный genResults(results) любым HTML, уже находящимся в контейнере, который у меня есть ID’ results-section d , а не заменять то, что там есть. Я пытался включить цепочку .append() , но, похоже, не могу найти способ сделать это успешно.

Очевидное решение — заставить цикл for создавать столько подразделов результатов, сколько мне нужно, но проблема в том, что я не знаю, сколько разделов мне нужно, пока не получу результаты из API.

Есть идеи?

Обновить:

Ответ от Сувика Гоша сработал. Я пытался подключиться .append() к .html() , я не понимал, что это фактически заменяет его.

$( "#results-section" ).append( "Your data from the last API call" );

Комментарии:

1. Я бы посоветовал вам ознакомиться со списком методов верхнего уровня jQuery: api.jquery.com . Большинство из них не требуют пояснений. В этом случае вам нужно api.jquery.com/append

Ответ №1:

Вы могли бы использовать jQuery append .

 $( "#results-section" ).append( "Your data from the last API call" );
  

Подробнее: https://api.jquery.com/append /