0

这是我的问题我有这个 jquery xml 解析问题。有趣的是,一切正常都接受 id 不断出现未定义。我的问题是导致 ID 未定义的原因是什么?哪个不好!所以这是我的脚本。

$(document).ready(function() {
         $.get('http://www.mytasteofitaly.com/menu/menu-1a.xml', function(data){
                     $(data).find('main').each(function(){
                    var $main = $(this);
                    var id = $main.attr('id');

            var html = '<div class="mainmen" id="main_' + id + '">';
            $('#menuitem').append($(html));
    });
        $(data).find('menu').each(function(){
        var $menu = $(this);
        var head = $menu.find('menuhead').text();

        var html = '<table class="menus"><th><h1>' + head + '</h1></th>';

        $('.mainmen').append($(html));
    });
        $(data).find('menuitem').each(function(){

            var $menuitem = $(this);
            var name = $menuitem.find('menuname').text();
            var desc = $menuitem.find('menudesc').text();
            var price = $menuitem.find('price').text();
            var desprice = $menuitem.find('price2des').text();
            var price2 = $menuitem.find('price2').text();


            var html = '<tr class="menu_item">';
            html += '<td class="h-menu">' + name + '</td>';
            html += '<td class="d-menu">' + desc + '</td>';
            html += '<td class="price">' + price + '</td>';
            html += '<td class="desprice">' + desprice + '</td>';
            html += '<td class="price2">' + price2 + '</td>' + '</tr>';

            $('.menus').append($(html));   
    });
});
});

这是我的 XML

<main>
    <menu id="appet">
        <menuhead>
        Appetizers
        </menuhead>
        <menuitem>
            <menuname>
            Cheese Stick
            </menuname>
              <menudesc>
             (6 Sticks)
            </menudesc>
            <price>
            $7
            </price>
            <price2des>
            </price2des>
            <price2>
            </price2>
        </menuitem>
        <menuitem>
        <menuname>
        Fried Mushrooms
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $7
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>
    <menuitem>
        <menuname>
        Fried Calamari
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $9
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>
    <menuitem>
        <menuname>
        Bruchetta
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $10
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>
    <menuitem>
        <menuname>
        Shrimp Bruchetta
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $10
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>
    <menuitem>
        <menuname>
        Garlic Bread
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $3
        </price>
        <price2des>
        With Cheese
        </price2des>
        <price2>
        $4
        </price2>
    </menuitem>

    <menuitem>
        <menuname>
        Soups
        </menuname>
        <menudesc>
        (Minestrone or Pasta Fagioli) Cup
        </menudesc>
        <price>
        $4
        </price>
        <price2des>
        Bowl
        </price2des>
        <price2>
        $6
        </price2>
    </menuitem>

    <menuitem>
        <menuname>
        Zupa de Mussels
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $7
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>

    <menuitem>
        <menuname>
        Side Meatballs or Sausage or Alfredo Sauce
        </menuname>
        <menudesc>
        </menudesc>
        <price>
        $4
        </price>
        <price2des>
        </price2des>
        <price2>
        </price2>
    </menuitem>
</menu>
 </main>

这是我的 HTML

<div id="Menuitem">
</div>

这是我设置的 jsfiddle http://jsfiddle.net/cornelas/MEgdw/

非常感激。

4

1 回答 1

0

main标签没有 ID....menu标签有

编辑:xml解析循环的问题

menuitems嵌套在menu嵌套在main

这意味着在each祖先中,您需要调用每个孩子。嵌套数据意味着嵌套循环

$(data).find('main').each(function() {

    var $main = $(this);

    $main.find('menu').each(function() {

        var $menu = $(this);

        $menu.find('menuitem').each(function() {

        });
    });
})​;​
于 2012-10-29T02:59:01.073 回答