1

その場で動的リストビューを作成しようとすると、これが得られます

私が得るもの

ここに私のjsonがあります

{"eventid":["61","23"],"name":["Clare Birthday","Mums Birthday"],"enddate":["Sat 27th April 2013","Wed 19th June 2013"]}

ここに私のコードがあります。

<script type="text/javascript">
                                $(function(){
                                    var items="";
                                        $.getJSON("ajaxResponder.php?method=check-events",function(data){
                                            $("#contacts").html(
                                            '<li data-role="list-divider" role="heading">Live Events</li>'+
                                                $.each(data,function(index,item){
                                                    '<li><a href="check-events-details?eventid='+item.eventid+'" data-transition="slide">'+item.name+ 
                                                    '<p>End Date: '+item.enddate+'</p></li>'
                                                }));
                                            $("#contacts").listview("refresh");
                                        });
                                });

                        </script>

            <div data-role="fieldcontain">
            <ul id="contacts" data-role="listview" data-divider-theme="b" data-inset="true">
            </ul>
            </div>

誰かが私が間違っているところを見ることができますか?

4

1 に答える 1

1

問題は、配列を正しく読み取っていないことです。以下のソリューションは、 へのリンクを持つ 2 つのリスト アイテムを作成するという前提に基づいていますid。配列を読み取る方法はたくさんありますが、データをどのように出力したいかによって異なります。

var object = {
 "eventid": ["61", "23"],
 "name": ["Clare Birthday", "Mums Birthday"],
 "enddate": ["Sat 27th April 2013", "Wed 19th June 2013"]
};

まず、JSON オブジェクトを配列に変換する必要があります。

var array = [object];

そして、その中でループします。ここでステートメントを使用forして 2 回ループしました。

for (var i = 0; i < 2; i++) {
 $.each(array, function (index, values) {
  var events = values.eventid;
  var names = values.name;
  var enddates = values.enddate;
  $('[data-role="listview"]').append('<li><a href=link"' + events[i] + '"> ' + names[i] + ' - ' + enddates[i] + '</a></li>');
  $('[data-role="listview"]').listview('refresh');
 });
}

デモ

注:要素idは数字ではなく文字で始める必要があります。

于 2013-04-25T13:34:50.423 に答える