Parse html string с jquery
У меня есть строка HTML из источника, загруженного Ajax. Я хотел бы получить некоторые атрибуты от объекта (изображения) в этой строке, прежде чем поместить HTML в документ.
У меня есть что-то вроде:
$.ajax({
url: uri+'?js',
success: function(data) {
var htmlCode = $(data).html();
$('#otherObject').html(data);
}
});
Как я могу получить атрибуты (например, src
) из этой строки HTML?
Ответы
Ответ 1
Я не уверен на 100%, но не буду
$(data)
создать объект jquery с DOM для этих данных, нигде не связан? Или, если он уже анализируется как DOM, вы можете просто перейти на $( "# myImg", данные) или любой другой селектор в соответствии с вашими потребностями.
ИЗМЕНИТЬ
Перечитывая свой вопрос, кажется, что ваши "данные" уже являются DOM, что означает, что вы можете просто пойти (если в вашем DOM есть только img, в противном случае вам понадобится более точный селектор)
$("img", data).attr ("src")
если вы хотите получить доступ к атрибуту src. Если ваши данные являются только текстом, вероятно, это будет работать
$("img", $(data)).attr ("src")
Ответ 2
Marvins.-
Try:
$.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.
Ответ 3
просто добавьте элемент контейнера для вашего элемента img, чтобы убедиться, что ваш интерстированный элемент не первый, проверенный, например, ff
Ответ 4
Одна вещь, которую нужно отметить - поскольку у меня была именно эта проблема сегодня, в зависимости от вашего jQuery HTML может или нет синтаксический анализ. jQuery не будет анализировать мой HTML в правильной DOM - на небольших XML-совместимых файлах он работал нормально, но HTML, который я имел (который отображал бы на странице), не будет анализироваться при обратном обратном вызове Ajax.
В конце я просто искал вручную в строке для тега, который хотел, но не идеально, но работал.