2012-10-29 117 views
0

這是我的問題我有這個jQuery的XML解析問題。有趣的是,所有作品都接受了這個ID,並且一直未定義。我的問題是什麼導致ID未定義?哪個不好!所以這是我的腳本。XML解析問題jquery

$(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/

大加讚賞。

+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() { 

     }); 
    }); 
})​;​ 
+0

ahhh ....您的權利! – Cam

+0

最後一個問題,我的腳本正在將我的整個XML數據庫應用到每個div ID。我在做什麼我的XML jquery調用錯了? – Cam

+0

好吧...給你一個問題的編輯,應mak lighbulbs離開 – charlietfl