Получение фотографии в текстовом сообщении tumblr с использованием jquery и JSON

Мой опыт работы с jquery и json довольно слаб, поэтому я изучаю API tumblr по мере продвижения. Я хотел бы получить атрибут src из первой фотографии в самой последней «обычной публикации». Изображение в посте имеет класс «основной».

До сих пор мне удавалось вывести заголовок сообщения в диапазон, а URL-адрес сообщения — в гиперссылку, которая охватывает изображение/диапазон.

$(document).ready(function () {
$.getJSON('http://features.futurevague.com/api/read/json?callback=?',
    function(response) {
       $('a#feat0').attr('href',response.posts[0].url);
       $('span#feat0').wrapInner(response.posts[0]['regular-title']);
       $('img#feat0').attr('src',response.posts[0]['regular-body'].find('img.main')[0].attr('src'));
});

});

Однако третья функция не работает (и, вероятно, имеет неправильный формат).

Мой HTML, в который я встраиваю контент, выглядит так:

        <a href="#" id="feat0">
        <div class="imgholder">
            <img src="#" class="main" id="feat0">
        <span id="feat0"></span></span>
        </div>
    </a>

Итак, любая помощь с использованием метода jquery .find()?


person d23546547687    schedule 22.03.2012    source источник
comment
вы получаете какую-либо ошибку, скажем, Firebug?   -  person gpasci    schedule 22.03.2012
comment
@gpasci Я не слишком хорошо знаком с firebug, но инспектор Chrome дал мне следующее для строки, в которой находится скрипт img: Uncaught TypeError: тогда все тело сообщения tumblr в формате html не имеет метод «найти»   -  person d23546547687    schedule 22.03.2012
comment
Каково значение response.posts[0]['regular-body'] ??   -  person Eric    schedule 23.03.2012
comment
@Eric текстовое тело последнего поста на tumblr с разметкой html (например, <img class="main" src="https://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/310248_214580331941526_101088363290724_552032_691739705_n.jpg"/><p>Kidnap Kid&#8217;s been making waves in the music scene with his past few releases. Just yesterday, (and I&#8217;m excited about this) his track &#8220;Vehl&#8221; got airplay on BBC Radio 1.</p> )   -  person d23546547687    schedule 23.03.2012
comment
Прочтите мой ответ, вместо этого я обновлю его   -  person Eric    schedule 23.03.2012


Ответы (2)


Для начала у вас не должно быть двух идентификаторов с одинаковым значением. Кроме того, опубликуйте значение response.posts[0]['regular-body'], это поможет.. Удалите идентификатор из диапазона и перейдите

$('#feat0').find('img:first').attr('src', response.posts[0]['regular-body']);

Из комментария к вашему сообщению: response.posts[0] здесь является строкой, а не HTML! Таким образом, вы не можете использовать «найти» на нем. Вы должны использовать регулярное выражение или даже indexOf для извлечения источника изображения.

person Eric    schedule 22.03.2012
comment
пример использования indexOf для получения атрибута элемента. - person d23546547687; 24.03.2012
comment
Теперь это просто самолет ленивый. Я собираюсь проголосовать против всей ветки. w3schools.com/jsref/jsref_indexof.asp - person Eric; 24.03.2012

Возможно, regular-body - это просто строка, поэтому селектор dom не работает. Попробуйте с

$(response.posts[0]['regular-body']).find('img.main')[0].attr('src')
person gpasci    schedule 22.03.2012