Как отобразить переменную с JSON и JQuery? - PullRequest
2 голосов
/ 09 июля 2009

Вот мой код, основанный на примере flickr, так как я пытаюсь научиться использовать JSON. Мой вопрос:

Как сделать так, чтобы заголовок var правильно отображался в HTML, я все еще новичок в программировании, пытающийся научить себя.

Я получаю [объект объекта], который, я думаю, означает, что это не строка. Не уверен, как написать это как единое целое, возможно, очень просто, но за меня.

Спасибо!

$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cats&tagmode=any&format=json&thumb_size=s&jsoncallback=?",
                function(data){
                    var title = $(this).children('.title');
              $.each(data.items, function(i,item){
                    var content = '<li>';
                    content += '<p class="title"> <a href="' + item.link + '">' + item.title + '</a></p>'
                    content += '<img width="133" height="100" class="prettyPhoto" src="' +  item.media.m + '"/>';
                    content += '<p class="date">' + title + '</p>'
                    content += '</li>';
                    $(content).appendTo("#recent-photos");
                    if ( i == 15 ) return false;
                  });
                });

Обновление:

Пример JSON, который я использую: я нацеливаюсь на все "элементы" потомков

({
        "title": "Recent Uploads tagged cats",
        "link": "http://www.flickr.com/photos/tags/cats/",
        "description": "",
        "modified": "2009-07-09T16:50:47Z",
        "generator": "http://www.flickr.com/",
        "items": [
       {
            "title": "Beautiful Downtown Gary, Indiana.",
            "link": "http://www.flickr.com/photos/fotomard/3704818882/",
            "media": {"m":"http://farm3.static.flickr.com/2506/3704818882_8a8e793e47_m.jpg"},
            "date_taken": "2009-06-27T17:21:05-08:00",
            "description": "<p><a href=\"http://www.flickr.com/people/fotomard/\">fotomard<\/a> posted a photo:<\/p> <p><a href=\"http://www.flickr.com/photos/fotomard/3704818882/\" title=\"Beautiful Downtown Gary, Indiana.\"><img src=\"http://farm3.static.flickr.com/2506/3704818882_8a8e793e47_m.jpg\" width=\"160\" height=\"240\" alt=\"Beautiful Downtown Gary, Indiana.\" /><\/a><\/p> <p>Backstage at the Palace Theater<\/p>",
            "published": "2009-07-09T16:50:47Z",
            "author": "nobody@flickr.com (fotomard)",
            "author_id": "51533956@N00",
            "tags": "urban cats house church wet beautiful nude theater downtown decay indiana palace crack abandon drugs gary dilapidation trap trespassing dilapitation"
       }

Обновление 2: Ран json2.js

Я получаю: означает ли это, что мне нужно его декодировать, или я просто неправильно его нацеливаю?

{"length":0,"prevObject":{"length":1,"0":{"type":"GET","url":"http://api.flickr.com/services/feeds/photos_public.gne?tags=cats&tagmode=any&format=json&thumb_size=s&jsoncallback=jsonp1247160045746&_=1247160045957","data":null,"dataType":"script","global":true,"contentType":"application/x-www-form-urlencoded","processData":true,"async":true,"accepts":{"xml":"application/xml, text/xml","html":"text/html","script":"text/javascript, application/javascript","json":"application/json, text/javascript","text":"text/plain","_default":"*/*"},"cache":false}},"selector":".children(undefined)"}

Ответы [ 3 ]

2 голосов
/ 09 июля 2009

если вы используете Firefox и Firebug, вы можете сделать:

console.log(data);

в вызове each (), чтобы увидеть, как структурированы данные. И ваш заголовок var должен быть локальным в вызове each ().

var title = item.title;

или

var title = $(item).children().attr('title'); // depens on how the data is structured
0 голосов
/ 09 июля 2009

Я понял это, поместив переменную внутри каждого, я смог получить это. Работа

0 голосов
/ 09 июля 2009

Лучше всего включить файл json2.js и вызвать stringify ():

alert(JSON.stringify(data));

Таким образом вы увидите, что возвращается при вызове ajax.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...