Вставить текст вокруг выделенного фрагмента

GoodLuck777

Новичок
Дано: текст в котором есть изображения <img src="..." alt="текст картинки" />

Нужно обвернуть все картинки элементом <div>, а также взять текст из alt чтобы сделать подпись для изображения. Текст идет из базы данных, как проще всего это можно сделать чтобы получить нечто подобное:

<div><img ...>текст картинки</div> .

Картинок несколько, надо делать через str_replace? Что-то туплю, может есть проще вариант? Спасибо.
 

Sufir

Я не волшебник, я только учусь
На PHP? Зачем str_replace? Просто сразу выводи так как нужно.
PHP:
<div><img src="<?= $img->getSrc() ?>" alt="<?= $img->getAltText() ?>"><?= $img->getAltText() ?></div>
Если на JS, то как-то так можно (с использованием jQuery):
PHP:
var div = $('<div/>');
$('img').wrap(div);
div.append(document.createTextNode('текст картинки'));
each'ем пройдись по всем нужным img, оберни и подставь текст из $(this).attr('alt');
 

GoodLuck777

Новичок
На PHP? Зачем str_replace? Просто сразу выводи так как нужно.
PHP:
<div><img src="<?= $img->getSrc() ?>" alt="<?= $img->getAltText() ?>"><?= $img->getAltText() ?></div>
Просто в базе текст сразу вперемешку с тегом <img> - получаемый из визуального редактора.

Если на JS, то как-то так можно (с использованием jQuery):
PHP:
var div = $('<div/>');
$('img').wrap(div);
div.append(document.createTextNode('текст картинки'));
each'ем пройдись по всем нужным img, оберни и подставь текст из $(this).attr('alt');
Да, проще оказалось сделать на jQuery )
 
Сверху