0

XML ファイルをループする Jquery があります。

 $(xml).find("category").each(function()
    {
        var title = $(this).find("title").text();
        var i = 0;
        console.log("j:" + j);
        if (j > 0) {
            fillNav("","",i,"final");
        }
        $(this).find('items > item').each(function() {
            var text = $(this).find("text").text();
            console.log("i:" + i);
            fillNav(title,text,i,"text");
            i++
        });

        j++;
    });

divを埋める場所:

 function fillNav(title,text,i,final){
    console.log("i:" + i);

        if ((i == 0)&&(final != "final")){
            console.log("title:" + title + "div><p><ul>");
            $("#accordionSub").append("<h3>"  + title + "</h3><br /><div><p><ul>");
            //$("#output").append("<div><p><ul>");
        }
        if (final != "final"){
            console.log("<li" + "text:" + "/li>");
            $("#accordionSub").append("<li>"  + text + "</li>");
        }
        if ((i == 0) && (final == "final")){
        console.log("final:" + "/ul>/p>/div>");
        $("#accordionSub").append("</ul></p></div>");
        }
}

結果のhtml:

<h3>Accessories</h3><br><div><p></p><ul></ul></div><li>Adaptors,  Bushings,   and Pressure Snubbers</li><li>Cables and Accessories   for pH Instruments</li><p></p>

UL タグが LI タグを取り囲んでいないのはなぜですか?

アップデート:

    output += "<h3>"  + title + "</h3><br />";
        output += " <div><p><ul> " ;
        $(this).find('items > item').each(function() {
            var text = $(this).find("text").text();
            var slink = $(this).find("link").text();
            //console.log("i:" + i);
            output += "<li class='subLink' src='"+ slink +"'>"  + text + "</a></li>";
        });
        output += "</ul></p></div>";

プロデュース:

<-div><-p></-/p><-ul><-li></-/li></-/ul><-p></-/p>

ULタグを囲むようにPタグを取得する必要があります

更新* 助けてくれたすべてに感謝します:将来誰かを助けるために私の最終的なコードを投稿するだけです:

$(xml).find("category").each(function()
    {   

        var output += '<h3>' +$(this).find("title").text() + '</h3>' ;
        var div = '<div>';
        output += '<ul>';   

        $(this).find('items > item').each(function() {
            var text = $(this).find("text").text();
            var slink = $(this).find("link").text();


            output += "<li class='subLink' src='"+ slink +"'>"  + text + "</a></li>";
        });

        output += '</ul>';      


    });
    //console.log(output);

    var icons = {
  header: "ui-icon-circle-arrow-e",
  activeHeader: "ui-icon-circle-arrow-s"
};
$('<div>')
.attr('id','accordionSub')
.html(output)       
.appendTo('#accordionSubB').delay(1).queue(function(){
    $( "#accordionSub" ).accordion({
                heightStyle: "content",
                collapsible: true,
                icons: icons
            });
}); 
4

2 に答える 2