2015-01-12 2 views
1

Привет, я использую getJSON для получения информации о видео youtube, и я пытаюсь отобразить его на своем веб-сайте.append form внутри .getJSON для дочернего элемента

$.each($('section'), function() { 
       var video_id = $(this).attr("id"); 


      $.getJSON('http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',function(data,status,xhr){ 

       $('.views').append(data.data.viewCount); 

       $('.author').append(data.data.uploader); 

       $('.likes').append(data.data.likeCount); 

     }); 

     }); 

Проблема, с которой я сталкиваюсь, заключается в том, что данные добавляются к каждому классу. Есть ли способ, которым я могу добавить данные только в этот перкулярный раздел.

+0

Это действительно зависит от того, в каком конкретном разделе вы ссылаетесь. Скорее всего, вам придется настроить селектор ('.views', '.author', '.likes'), чтобы включить еще более детализацию. Если у вас есть HTML, с которым вы имеете дело, опубликуйте его. – Alex

+0

Я использую .each(), чтобы получить идентификатор от каждого видео (которое находится в теге раздела). Поэтому мне бы очень хотелось увидеть данные, отображаемые на видео с этим конкретным идентификатором. –

+0

Вы можете вызвать '.each()' непосредственно по выборам. Это намного чище. Например. '$ ("Раздел") каждый (...);. '. –

ответ

0

Используйте find, чтобы спуститься для элемента DOM section, чтобы избежать выбора всех элементов класса в DOM.

$.each($('section'), function() { 
    var video_elem = $(this); 
    var video_id = $(this).attr("id"); 
    $.getJSON('http://gdata.youtube.com/feeds/api/videos/'+video_id+'?v=2&alt=jsonc',function(data,status,xhr){ 
     video_elem.find('.views').append(data.data.viewCount); 
     video_elem.find('.author').append(data.data.uploader); 
     video_elem.find('.likes').append(data.data.likeCount); 
    }); 
}); 
+0

'' 'video_id''' - это строка, а не элемент DOM. – Alex

+1

@Alex я вижу это, крепление. Готово. –

+0

Спасибо. отлично работает .. –

Смежные вопросы