Jquery .append () массив результатов из XML - PullRequest
1 голос
/ 23 февраля 2012

У меня проблемы с добавлением результатов моих xml-анализов в HTML-элементы правильно

Чего я пытаюсь достичь:

            <li>Tutorial
                <ul>
                    <li><a href="somelink">Tutorial 1</a></li>
                    <li><a href="somelink">Tutorial 2</a></li>
                    <li><a href="somelink">Tutorial 3</a></li>
                    <li><a href="somelink">Tutorial 4</a></li>
                </ul>
            </li>
            <li>Simple
                <ul>
                    <li><a href="somelink">Simple 1</a></li>
                    <li><a href="somelink">Simple 2</a></li>
                    <li><a href="somelink">Simple 3</a></li>
                    <li><a href="somelink">Simple 4</a></li>
                </ul>
            </li>

ЧтоВ настоящее время я получаю из своего кода:

                <li>Tutorial 
                    <ul>
                        <li><a href="somelink">Tutorial 1,Tutorial 2,Tutorial 3,Tutorial 4</a></li>
                        <li><a href="somelink">Simple 1,Simple 2,Simple 3,Simple 4</a></li> 
                        <li><a href="somelink">More stuff from other arrays that should be seperate...</a></li>         
                    </ul>
                </li>
                <li>Simple
                    <ul>
                        <li><a href="somelink">Simple 1,Simple 2,Simple 3,Simple 4</a></li> 
                        <li><a href="somelink">More stuff from other arrays that should be seperate...</a></li>         
                    </ul>
                </li>

Код Jquery:

    console.log("searching xml");  
$(data).find("plist > dict > array > dict").each(function()  {

    var $board = $(this);
    console.log($board);

    //finds the title of each
    var title = $board.find('string').eq(0).text();
    //find the children of each dict
    console.log("finding children");
    var description = $board.find('array').contents('dict');
    var desarray = new Array();
    console.log("push to array");
    desarray.push(description.find('string:eq(1)').textChildren({stringDelimiter: ','}).split(','));
    console.log(description);   
    console.log(desarray);

    //desarray contains all the arrays;

    var  html = '<li>' +'<a href="somelink">' + desarray + '</a>'+'</li>';

    $("#list").append('<li>' + title + '<ul>');
    console.log("appended to title");
    $("#list li > ul").append(html);
    console.log("appended to title list");    
}); 

//refresh   
$('#list').listview('refresh');     
console.log("refreshed");     

Поскольку я зацикливаюсь, я добавляю результаты в свой списоккогда я не хочуВ списке «Простой» вы можете видеть, что после добавления элементов «Учебное пособие» они не появляются в следующем наборе элементов ul.

Я застрял на том, что я должен сделать, чтобы добиться того, чего я хочу.Я знаю, что цикл вызывает проблему с несколькими добавлениями, и что мой массив, вероятно, должен быть как-то разделен, но я не знаю, как.

Как мне распечатать результаты каждого массива только один раз?Если я переместлю методы добавления вне цикла, я получу только окончательный результат в массиве.

Любая помощь приветствуется.

РЕДАКТИРОВАТЬ:

XML-файл в формате .plist.В первом цикле массив desarray заполняется Учебником 1, Учебником 2, Учебником 3, Учебником 4. Именно на этом этапе я хочу напечатать каждое значение индекса и вставить в элемент списка один раз .Вместо этого я снова зацикливаюсь и возвращаю Simple 1, Simple 2 и т. Д. И добавляю это к текущему массиву 'desarray', который затем печатает снова и вызывает проблему.

Пример формата XML, может включать полный файл, если не ясно:

<dict>
<!--<key>DisplayTutorial</key>
    <string>Yes</string> -->
    <key>Grid</key>
    <string>...|...|...|</string>
    <key>Name</key>
    <string>Tutorial 1</string>
    <key>ON</key>
    <string>bar</string>
    <key>Pieces</key>
    <array>
        <string>Y11110000</string>
        <string>G11110000</string>
        <string>P11110000</string>
    </array>
    <key>UniqueName</key>
    <string>Tutorial/1.xml</string>
</dict><dict>
    <key>Grid</key>
    <string>....|OOOO|....|</string>
    <key>Name</key>
    <string>Tutorial 2</string>
    <key>Pieces</key>
    <array>
        <string>G11110000</string>
        <string>G11110000</string>
        <string>P11110000</string>
        <string>P11110000</string>
    </array>
    <key>UniqueName</key>
    <string>Tutorial/3.xml</string>
</dict><dict>
    <key>Grid</key>
    <string>...|.X.|...|</string>
    <key>Name</key>
    <string>Tutorial 3</string>
    <key>Pieces</key>
    <array>
        <string>G11110000</string>
        <string>G11110000</string>
        <string>P11110000</string>
        <string>P11110000</string>
    </array>
    <key>UniqueName</key>
    <string>Tutorial/4.xml</string>
</dict><dict>
    <key>Grid</key>
    <string>....|</string>
    <key>Name</key>
    <string>Tutorial 4</string>
    <key>Pieces</key>
    <array>
        <string>G11111111</string>
        <string>G00001111</string>
        <string>P00001111</string>
        <string>P11111111</string>
    </array>
    <key>UniqueName</key>
    <string>Tutorial/5.xml</string>
</dict></array> </dict>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...