0

jqueryを介してjsonを読み込もうとしています。しかし、私は自分のhtmlで未定義になっています。

以下は、HTML jquery コードです。

$(document).ready(function() {
                 $.getJSON('Json.json',function(data){
                    $('#output').empty();
                        $.each(data.general, function(entry){
                    var html = '<div class="general">';                    
                    html += '<span class="logo">' + entry['logo'] + '</span>';
                    html += '<span class="name">' + entry['name'] + '</span>';
                    html += '</div>';                                                       
                    $('#output').append(html);
                });                        
            });
            return false;
        });

以下は私のJSONです:

"general":{
      "logo":"assets/images/logo.png",
      "name" : "Company Name"
   }

JSON は JSLint によって検証されます。どこが間違っているのか教えてください。

ありがとう!

コードを次のように更新しました。

$(document).ready(function() {
                 $.getJSON('Json.json',function(data){
                    $('#output').empty();                       
                    var html = '<div class="general">';                    
                    html += '<h3>' + data.general.logo+ '</h3>';
                    html += '<div class="name">' + data.general.name+ '</div>';
                    html += '</div>';  
                    html +='<div class="navigation" >';                                                 
                    $('#output').append(html);                                     
            });
            return false;
        });

それは今働いています!!

4

1 に答える 1

0

jsFiddle デモ

したがって、各ループ内にある必要があるのは、マップ内のすべてのエントリに対して繰り返したいステップだけです。変数の初期化はhtmlそこで行われるべきではありません。次に、連想配列のエントリを反復処理するために、コールバック関数へのパラメーターはkeyvalueであり、使用した変数名に基づいて、これらが何に対応するかは明らかです。

$(document).ready(function() {
    $.getJSON('Json.json',function(data){
        $('#output').empty();

        var html = '<div class="general">'; 
        $.each(data.general, function(key, val){
            html += '<span class="'+key+'">' + val + '</span>';
        });
        html += '</div>';                                                 
        $('#output').append(html);
    });
    //return false; Not sure why you had this...you don't need it
});
于 2012-11-10T06:20:50.063 に答える