0

実際のスクリプトが機能し、正しい出力を生成している間に Chrome コンソールで上記のエラーが発生した場合、このエラーをどのように取り除くことができるのか、何が原因なのか疑問に思います。

JSFiddle: http://jsfiddle.net/wJUeP/

HTML コード:

<ul id="menu"></ul>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

JS コード:

$(function(){
var data = [{"weekending":"09\/10\/2013","jobs":[{"jobnumber":"1001","jobaddress":"Test1001","employees":[{"employeenumber":"1","name":"James Blabla","class":"FHM","notes":"xx","nt-wkmon":"2","t12-wkmon":"5","dt-wkmon":"4","status-wkmon":"Public Holiday","startTime-wkmon":"4","finishTime-wkmon":"6","nt-wktue":"7"}]},{"jobnumber":"1002","jobaddress":"Test1002","employees":[{"employeenumber":"1","name":"Cameron Le","class":"FHQ","notes":"xx","nt-wkmon":"2","t12-wkmon":"5","dt-wkmon":"4","status-wkmon":"Public Holiday","startTime-wkmon":"4","finishTime-wkmon":"6","nt-wktue":"7"},{"employeenumber":"2","name":"David Le","class":"FHQ","notes":"xx","nt-wkmon":"2","t12-wkmon":"5","dt-wkmon":"4","status-wkmon":"Public Holiday","startTime-wkmon":"4","finishTime-wkmon":"6","nt-wktue":"7"}]},{"jobnumber":"1003","jobaddress":"Test1003","employees":[{"employeenumber":"1","name":"Nick G","class":"sdf","notes":"sdf","nt-wkmon":"2","t12-wkmon":"5","dt-wkmon":"4","status-wkmon":"Public Holiday","startTime-wkmon":"4","finishTime-wkmon":"6","nt-wktue":"7"}]}]}];

for(var i = 0, j = data[0].weekending.length; i<j; i++) {
    rootMenu = data[0].jobs[i];
    $("#menu").append("<li id='job_" + rootMenu.jobnumber + "'>" + rootMenu.jobnumber);
    if(rootMenu.hasOwnProperty("employees")) {
        $("#menu").append("<ul id='employees_job_" + rootMenu.jobnumber + "'>");
        for(var n = 0, m = rootMenu.employees.length; n<m; n++) {
            var subMenu = rootMenu.employees[n];
            if(subMenu.hasOwnProperty("name")) {
                $("#employees_job_" + rootMenu.jobnumber).append("<li>" + subMenu.name + "</li>");
            }
        }
        $("#menu").append("</ul>");
    } else {
        $("#menu").append("</li>");
    }
}
});

注: 私はまだアプリケーションの開発段階にあり、データ構造を柔軟に変更および操作できます。埋め込まれた JSON データが見栄えが悪い場合は変更できます。実際のデータは XML ファイルに保存され、PHP によって読み取られます。 JSONとして出力されます。

4

2 に答える 2

1

for ループ条件が正しくありません。

これはj = data[0].weekending.length10 に等しく、data[0].jobsジョブが 3 つしかないオブジェクトを反復処理しています。ジョブを 3 回以上繰り返しているため、エラーが発生しています。

フィドルをチェックアウトhttp://jsfiddle.net/wJUeP/7/

于 2013-10-10T07:31:19.470 に答える
0

エラーは次のとおりです。

j = data[0].weekending.length

これは、週末プロパティの文字列の長さである 10 を返します == 10 ("09/10/2013") 代わりにこれが必要だと思います:

j = data[0].jobs.length
于 2013-10-10T07:48:54.733 に答える