Я создаю сайт Wordpress, где я сделал это так, чтобы вы могли вставлять полноэкранные изображения с параллаксом через CKEditor, назначая вставленные изображения классу. Сценарий, который я написал, заменяет найденные изображения на div и использует источник замененного изображения в качестве фона для div. Остальное сделано CSS. Моя проблема в том, что до сих пор я могу заставить это работать только с первым изображением, имеющим класс.
Я знаю, где мой код ломается - это когда я заменяю изображение на div.
Вот мой код:
if (document.getElementsByClassName('fullwidth-image').length > 0) {
let pictures = document.getElementsByClassName('fullwidth-image');
Array.prototype.forEach.call(pictures, function(e){
let imgUrl = e.src,
imgWrapper = document.createElement('div');
imgWrapper.classList.add('fullwidth-container');
imgWrapper.style.backgroundImage = 'url(' + imgUrl + ')';
e.replaceWith(imgWrapper);
});
}
Если я закомментирую
e.replaceWith(imgWrapper);
1011 * тогда *
console.log(e);
выводит все изображения на странице, как и должно быть. Когда он находится в коде, выводится только первое изображение с class = "fullwidth-image". Как я могу написать это лучше?