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.

В конце я просто искал вручную в строке для тега, который хотел, но не идеально, но работал.