Я пытаюсь получить "src" в тегах img внутри переменной javascript, которая содержит блок HTML-кода, динамически сгенерированный/назначенный.
Например:
var post_body = "<div>This is an image <img src='abcd.jpg' /> and this is a paragraph <p>hi there</p> Here we have another image <img src='pqrs.jpg' /></div>"
содержимое переменной "post" не предопределено и динамично, и код HTML в нем всегда изменяется. Чтобы получить src изображения в нем, я сделал следующее. Но это не всегда работает для меня.
var firstimg = $(post_body).find("img:first").attr("src");
Я пытался получить первый образ сообщения в блоге из содержания блога, но это не работает для некоторых сообщений с изображениями. Как это можно сделать с помощью javascript или jQuery без сбоев?
Используя обычный JavaScript, выгрузите HTML во временный элемент и извлеките его:
var div = document.createElement('div');
div.innerHTML = post_body;
var firstImage = div.getElementsByTagName('img')[0]
var imgSrc = firstImage ? firstImage.src : "";
// or, if you want the unresolved src, as it appears in the original HTML:
var rawImgSrc = firstImage ? firstImage.getAttribute("src") : "";
Измените $(post_body)
на $(post)
Пытаться
var post = "<div>This is an image <img src='abcd.jpg' /> and this is a paragraph <p>hi there</p> Here we have another image <img src='pqrs.jpg' /></div>";
var firstimg = $(post).find('img:first').attr('src');
Возможно, вы можете попробовать добавить id в тег img
а затем получить к нему доступ.
var oImg = document.getElementById('myImg');
var attr = oImg.getAttribute('src');
Это чистое решение js.
post_body
а ваша переменная называетсяpost
.