0

datepicker と json に関する簡単な質問です。私はこのコードを持っています:

var dates = {'2013/4/4':'some description' , '2012/6/6':'some other description'}; 

                    function date_propogate() {
                    console.log('in function');
                        $.getJSON('URL OF JSON', function(data) {
                        date_items = data.items;
                        console.log(date_items);
                            $.each(date_items, function(index, date_item) {
                                dates.push(date_item.sdate);
                            });
                        });
                    }

                    $(document).ready(function() {

                    date_propogate();

                    $('#datepicker').datepicker({                
                        beforeShowDay: function(date) {

                        var search = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + (date.getDate());


                        if (dates[search]) {
                                return [true, 'highlight', dates[search] || ''];
                                }

                                return [false, '', ''];
                            }

                        });
                    });

JSON ページはこれを返します。

{"items":[{"sdate":"2013-02-25","edate":"2013-02-27","cost":"200","id":"1"}]}

正常に表示される静的な日付が 2 つありますが、date_items.sdate によって返される日付が読み込まれていません。「メソッドがありません: プッシュ」というエラーが表示されます。

私はこれを正しく行っていますか、それとももっと良い方法がありますか? jsがphpの前にロードされているため、ページにphpだけではできないと思いますか?

どんな助けでも大歓迎です。

4

3 に答える 3

2

を使用して配列ではなく、datesを使用してオブジェクトとして宣言しました。オブジェクトを呼び出すことはできません。{}[].push()

于 2013-03-26T12:03:20.207 に答える
0

日付はオブジェクトであり、オブジェクトにはプッシュという関数がありません。配列にはこれらの機能があります。

とにかく、これを行うだけです:

var dates = ['2013/4/4':'some description' , '2012/6/6':'some other description'];

于 2013-03-26T12:02:33.077 に答える
0

Dates は配列ではないため、プッシュできません。日付を配列として定義する必要があります

var dates = [{'2013/4/4':'some description'} , {'2012/6/6':'some other description'} ]

上記は、オブジェクトの配列を作成します。

于 2013-03-26T12:06:23.107 に答える