2016-08-23 64 views
0

我使用http://netflixroulette.net/api/来根据文本框中的类型提取信息,但是我无法获取对象参数的值。为什么我无法从此对象获得评分?

$('.moviebutton').on('click', function(e){ 
    e.preventDefault(); 

    var title = $('#moviename').val(); 
    var movieresults = $('#movieresults'); 
    var requestURL = '//netflixroulette.net/api/api.php'; 

    $.getJSON(requestURL, { 
     'title' : title, 
    }, function(data) { 
     console.log(data); 
     if(data){ 
      myMovie = '<table>'; 
      myMovie += '<tr><th>Rating</th><th>Title</th><th>Poster Link</th></tr>'; 
      $.each(data, function(i, rep){ 
       myMovie += '<tr>'; 
       myMovie += '<td>'; 
        myMovie += rep.rating; 
       myMovie += '</td>'; 
       myMovie += '<td>'; 
        myMovie += rep.show_title; 
       myMovie += '</td>'; 
       myMovie += '<td>'; 
        myMovie += rep.poster; 
       myMovie += '</td>'; 
       myMovie += '</tr>'; 
      }); 
      myMovie += '</table>'; 
     } else { 
      myMovie = '<p>Sorry no address where found</p>'; 
     } 
     movieresults.html(myMovie); 
    }); 
}); 

这样做的回报是

Object {unit: 883, show_id: 70299043, show_title: "Attack on Titan", release_year: "2013", rating: "4.6"…} 
    category:"Anime" 
    director:"" 
    mediatype:1 
    poster:"http://netflixroulette.net/api/posters/70299043.jpg" 
    rating:"4.6" 
    release_year:"2013" 
    runtime:"24 min" 
    show_cast:"Yuki Kaji, Yui Ishikawa, Marina Inoue, Daisuke Ono, Hiro Shimono, Hiroshi Kamiya, Keiji Fujiwara, Kishô Taniyama, Romi Park, Ryota Ohsaka" 
    show_id:70299043 
    show_title:"Attack on Titan" 
    summary:"For over a century, people have been living behind barricades to block out the giant Titans that threaten to destroy the human race. When a Titan destroys his hometown, young Eren Yeager becomes determined to fight back." 
    unit:883 
    __proto__:Object 

但是当我尝试rep.rating或rep.show_title我得到了一个未定义,我失去了一个参数或代替rep.w/E我会使用object.rating?

+0

看起来像'数据'是一个对象,但你正试图像它的数组一样迭代它。 –

+0

你有没有试过查看你的变量'i'和'rep'存储了什么? –

回答

1

由于这里的返回值实际上是一个对象,你可以只使用data.rating而是采用循环并调用rep.rating,如:

$.getJSON(requestURL, { 
    'title': title, 
}, function(data) { 
    console.log(data); 
    if (data) { 
    myMovie = '<table>'; 
    myMovie += '<tr><th>Rating</th><th>Title</th><th>Poster Link</th></tr>'; 
    myMovie += '<tr>'; 
    myMovie += '<td>'; 
    myMovie += data.rating; 
    myMovie += '</td>'; 
    myMovie += '<td>'; 
    myMovie += data.show_title; 
    myMovie += '</td>'; 
    myMovie += '<td>'; 
    myMovie += data.poster; 
    myMovie += '</td>'; 
    myMovie += '</tr>'; 
    myMovie += '</table>'; 
    } else { 
    myMovie = '<p>Sorry no address where found</p>'; 
    } 
    movieresults.html(myMovie); 
}); 

简单的演示:

var movieresults = $('#movieresults'); 
 
var requestURL = 'http://netflixroulette.net/api/api.php?title=Attack%20on%20titan'; 
 

 
$.getJSON(requestURL, function(data) { 
 
    console.log(data); 
 
    if (data) { 
 
    myMovie = '<table>'; 
 
    myMovie += '<tr><th>Rating</th><th>Title</th><th>Poster Link</th></tr>'; 
 
    myMovie += '<tr>'; 
 
    myMovie += '<td>'; 
 
    myMovie += data.rating; 
 
    myMovie += '</td>'; 
 
    myMovie += '<td>'; 
 
    myMovie += data.show_title; 
 
    myMovie += '</td>'; 
 
    myMovie += '<td>'; 
 
    myMovie += data.poster; 
 
    myMovie += '</td>'; 
 
    myMovie += '</tr>'; 
 
    myMovie += '</table>'; 
 
    } else { 
 
    myMovie = '<p>Sorry no address where found</p>'; 
 
    } 
 
    movieresults.html(myMovie); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 
 
<p id="movieresults"></p>

+1

令人敬畏的欢呼声作品魅力:) – MrJoshFisher

相关问题