1

すべてのクライアントのツリービューを持つアプリケーションがあります。複数のアイテムを持つ可能性のあるクライアントごとに、このようなテーブルがあります

+--------+----------+-------------------+
|ID      | ParentID | GroupName         |
|--------+----------+-------------------+
| 1      | Null     |    Main Group     |
| 2      | 1        |    Item 1         |
| 3      | 2        |    Item 2         |
| 4      | 2        |    Item 3         |
| 5      | 3        |    Item 2.1       |
| 6      | 2        |    Item 4         |
| 7      | 4        |    Item 3.1       |
| 8      | 7        |    Item 3.1.1     |
| 9      | 2        |    Item 5         |
| 10     | 3        |    Item 2.2       |
+--------+---------+--------------------+

そして JASON DATA はこのようにフォームサーバーに来ます

[{"ID":1,"ParentID":null,"GroupName":"Main Group"},{"ID":2,"ParentID":1,"GroupName":"Item 1"},{"ID":3,"ParentID":2,"GroupName":"Item 2"},{"ID":4,"ParentID":2,"GroupName":"Item 3"},{"ID":5,"ParentID":3,"GroupName":"Item 2.1"},{"ID":6,"ParentID":2,"GroupName":"Item 14"},{"ID":7,"ParentID":4,"GroupName":"Item 3.1"},
    {"ID":8,"ParentID":7,"GroupName":"Item 3.1.1"},{"ID":9,"ParentID":2,"GroupName":"Item 5"},{"ID":10,"ParentID":3,"GroupName":"Item 2.2"}]

そして、そのようなHtml somtingでjqueryを取得するにはどうすればよいですか

<ul>
    <li id="1"><a>Main Group</a>
        <ul>
        <li id="2"><a>Item 1</a></li>
        <li id="3"><a>Item 2</a></li>
           <ul>
           <li id="5"><a>Item 2.1</a></li>
           <li id="10"><a>Item 2.2</a></li>
           </ul>
        <li id="4"><a>Item 3</a></li>
           <ul>
           <li id="7"><a>Item 3.1</a></li>
              <ul>
              <li id="8"><a>Item 3.1.1</a></li>
              </ul>
           </ul>
        <li id="6"><a>Item 4</a></li>
        <li id="9"><a>Item 5</a></li>
        </ul>
    </li>    
</ul>

そのコードを使用しようとしましたが、間違った結果が得られました

$.getJSON('test.json', function(data) {
     var items = [];

      $.each(data, function(key, val) {
        items.push('<li id="' + val.ID + '">' + val.GroupName + '</li>');
      });

      $('<ul/>', {
        html: items.join('')
      }).appendTo('body');
    });
4

0 に答える 0