разбор html-строки с помощью jquery
У меня есть строка HTML из загруженного источника Ajax. Я хотел бы получить некоторые атрибуты из объекта (изображения) в этой строке, прежде чем я помещу HTML в документ.
у меня есть что-то вроде:
$.ajax({
url: uri+'?js',
success: function(data) {
var htmlCode = $(data).html();
$('#otherObject').html(data);
}
});
Как я могу получить атрибуты (src
например) из этой строки HTML?
4 ответа:
Я не уверен на 100%, но не
$(data)
создать объект jquery с DOM для этих данных, не подключенных нигде? Или, если он уже проанализирован как DOM, вы можете просто перейти $("#myImg", data) или любой другой селектор, соответствующий вашим потребностям.
EDIT
Перечитывая ваш вопрос, кажется, что ваши "данные" уже являются DOM, что означает, что вы можете просто пойти (предполагая, что в вашем DOM есть только img, иначе вам понадобится более точный селектор)$("img", data).attr ("src")
Если вы хотите получить доступ к src-атрибут. Если ваши данные просто текст, это, вероятно, будет работать, чтобы сделать
$("img", $(data)).attr ("src")
MarvinS.-
попробуй:
$.ajax({ url: uri+'?js', success: function(data) { var imgAttr = $("img", data).attr('src'); var htmlCode = $(data).html(); $('#imgSrc').html(imgAttr); $('#fullHtmlOutput').html(htmlCode); } });
Это должно загрузить весь блок html из данных в #fullHtmlOutput и src изображения в #imgSrc.
просто добавьте элемент контейнера для вашего элемента img, чтобы убедиться, что ваш элемент intersted не первый,протестированный в ie, ff
одна вещь, чтобы отметить-как у меня была именно эта проблема сегодня, в зависимости от вашего HTML jQuery может или не может разобрать его так хорошо. jQuery не будет анализировать мой HTML в правильный DOM-на меньших XML-совместимых файлах он работал нормально, но HTML, который у меня был (который будет отображаться на странице), не будет анализировать при передаче обратно в обратный вызов Ajax.
в конце концов я просто искал вручную в строке для тега, который я хотел, не идеально, но работал.