Как программно добавить элементы в DOM с выполнением JavaScript кода?

Как можно заменить использование jQuery при обработке контента, полученного через ajax, с учётом того, что на странице много таких элементов? Может быть, есть готовые библиотеки или универсальные механизмы для работы с контентом из ajax, которые могли бы помочь в данной ситуации?
  • 9 декабря 2023 г. 11:19
Ответы на вопрос 3
Существует несколько способов программного добавления элементов в DOM с выполнением JavaScript кода.
 
1. Создание элементов с помощью метода `createElement` и добавление их в DOM с помощью метода `appendChild` или метода `insertBefore`:
```javascript
var element = document.createElement('div');
element.innerHTML = 'Новый элемент';
document.body.appendChild(element);
```

2. Вставка HTML-кода с помощью метода `innerHTML`:
```javascript
document.getElementById('myElement').innerHTML = '<div>Новый элемент</div>';
```

3. Использование метода `insertAdjacentHTML`, который позволяет динамически вставить HTML-код на определенное место в DOM:
```javascript
document.getElementById('myElement').insertAdjacentHTML('beforeend', '<div>Новый элемент</div>');
```

Что касается замены использования jQuery при обработке контента, полученного через ajax, то можно воспользоваться нативными методами JavaScript, такими как `fetch` или `XMLHttpRequest`, для получения данных с сервера и обработки их на стороне клиента. Например, с использованием метода `fetch`:
```javascript
fetch(url)
  .then(function(response) {
    return response.text();
  })
  .then(function(data) {
    // Обработка полученных данных
    var element = document.createElement('div');
    element.innerHTML = data;
    document.body.appendChild(element);
  })
  .catch(function(error) {
    console.log('Ошибка:', error);
  });
```

Также существуют различные библиотеки, которые предоставляют удобные и мощные инструменты для работы с контентом из ajax. Например, Axios, Superagent, или GraphQL-request. Выбор конкретной библиотеки зависит от требований и предпочтений разработчика.
при динамическом добавлении разметки со script , его содержимое не выполняется, универсальным способом будет пройтись по добавленному куску разметки, найти все такие элементы и потом пересоздать их заменив новыми оригиналы: 
JQuery состоит из частей, собственно если нужен только ajax, можно взять https://github.com/jquery/jquery/blob/main/src/ajax.js , но я бы все-таки посоветовал освоить fetch
Похожие вопросы