1

このjsonオブジェクトを検討してください:

[{"data":{"ID":"3","Category":"Career"}},{"data":{"ID":"5","Category":"Emotions"}},{"data":{"ID":"1","Category":"Finance"}},{"data":{"ID":"2","Category":"Health"}},{"data":{"ID":"6","Category":"Legacy"}},{"data":{"ID":"4","Category":"Relationships"}}]  

そして、このクライアントコードを検討してください。

$(function (){ 

 $.ajax({                                      
  url: 'category.php',                         
  data: "",                        
   dataType: 'json',                      
  success: function(data)         
  {
     var output = '';
      $.each( data, function( key, obj) {
      $.each( obj, function( index, item) {
        //console.log(index+ ": " + item);
        url = "goal.php?catID=" + item.ID;
        output = '<li><a>' + item.Category+ '</a></li>';
        href = $('a').attr("href",url); $('a').append(href);
        $('#listview').append(output).listview('refresh');
       });
   });
   } 
});  }); 

<div data-role="page" id="home">
<div data-role="header"><h1>My Goals</h1></div>

<div data-role="listview" data-autodividers="true" data-inset="true">
  <ul data-role="listview" id="listview">    
  </ul>
</div>

JQuery mobileでの最初の試みで、JSONをループして、カテゴリとそのリンクを出力しようとしています-

私はほぼ成功していますが、URLに最後のレコードitem.IDを追加しているだけですか?

誰か助けてもらえますか?

ありがとう

4

2 に答える 2

2

あなたがするとき

$('a').attr("href",url)

ページのすべてのa要素を変更しています。そしてもちろん、最後の反復が勝ちます。

私はあなたのループでこれを提案します:

$('#listview').append(
    $('<li/>').append($('</a>').attr('href', url).html(url))
).listview('refresh');
于 2013-03-22T16:01:11.780 に答える
2

試す

$(function (){ 

    $.ajax({                                      
        url: 'category.php',                         
        data: "",                        
        dataType: 'json',                      
        success: function(data)         
        {
            $.each( data, function( key, obj) {
                var item = obj.data;
                $('<li></li>').append($('<a></a>', {
                    text: item.Category,
                    href: 'goal.php?catID=' + item.ID
                })).appendTo( $('#listview'))
            });

            $('#listview').listview('refresh');
        } 
    });  
}); 

デモ:フィドル

于 2013-03-22T16:14:49.720 に答える