-5

javascriptを使用してJSONファイルを解析し、配列内の画像のみを表示しようとしています。私はここで何を間違っているのですか、そしてそれを修正するにはどうすればよいですか?コードを実行しても画面に出力はありません。これで画像が出力されると思いましたが、何も起きていません。

HTML:

<!DOCTYPE html>
<html>

<script 'type=text/javascript' 'src=js.js'></script>
<script  type="text/javascript" src="ajax link was here"></script>
  <head lang="en">
    <meta charset="utf-8">
    <title>images</title>
  </head>

  <body>

    <div class = "movie">

    </div>


  </body>

</html>

Javascriptファイル

$(document).ready(function () {

    $.get('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

        var movie = JSON.parse(data);

        for (var x = 0; x < movie.length; x++) {
            var mov = movie[x];
            //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
            var elm = mov.img;
            $('.movie').prepend(elm);

        }

    }, 'text');

});

よろしくお願いします。

4

3 に答える 3

1

代わりに、自分でjsutを解析する必要はありません$.getJSON

$.getJSON('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

    for (var x = 0; x < data.length; x++) {
        var mov = data[x];
        //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
        var elm = mov.img;
        $('.movie').prepend(elm);

    }

}

さらに、構造が間違っています。そのページは次のようなものを返しています:

{
   "query": "the value of your q parameter"
   "results": []
}

したがって、ループとデータへのアクセスも変更する必要があります。だからそれをまとめる:

$.getJSON('http://54.243.128.130/search/movies_list/?q=inception', function (data, image) {

        var movies = data.results;

        for (var x = 0; x < movies.length; x++) {
            var mov = movies[x];
            //var elm = '<div class = "movie"><img src = "'+mov.img+'"></div>';
            var elm = mov.img;
            $('.movie').prepend(elm);

        }

    }

最後に、これがコードと同じサーバー上にない場合はjsonp、ローカルプロキシを使用または作成して、外部リクエストを行う必要があります。

于 2013-02-21T00:46:13.097 に答える
1

手始めに、変更することをお勧めします

<script 'type=text/javascript' 'src=js.js'></script>

<script type="text/javascript" src="js.js"></script>

また、発生しているエラー/問題について説明できますか?

于 2013-02-21T00:48:20.453 に答える
-2

JSON.parse 関数は、配列ではなく辞書を返します。JSON.parse の出力として辞書を取得したとしましょう:
var movie={a:1,b:2,c:3};
次に、次のように反復する必要があります。

for(var i=0;i<Object.keys(movie).length;i++){
    var mov = movie[Object.keys(movie)[i]];
    var elm = mov.img;
    $('.movie').prepend(elm
}
于 2013-02-21T00:51:48.337 に答える