2010-06-14 77 views
1

我似乎无法弄清楚这个问题。我试图让XML来呈现HTML标记。我使用.text()的问题将显示但不能识别任何html标签。如果我使用.html()或者只是调用var long2 = $(this).find('long'); Safari或IE中不会显示任何内容。jquery XML .html()而不是.text()不显示?

我有XML款 我在这里的文字,需要大胆标签或标签就是为什么我需要html标签的XML得到认可。

代码:

$(document).ready(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "xml/sites.xml", 
      dataType: "xml", 
      success: function(xml) { 
       $(xml).find('site').each(function(){ 
        var id = $(this).attr('id'); 
        var title = $(this).find('title').text(); 
        var Class = $(this).find('class').text(); 
        $('<div class="'+Class+'" id="link_'+id+'"></div>').html('<p class="title">'+title+'</p>').appendTo('#page-wrap'); 
        $(this).find('desc').each(function(){ 
         var url = $(this).find('url').text(); 
         var long = $(this).find('long').text(); 
         $('<div class="long"></div>').html(long).appendTo('#link_'+id); 
         $('#link_'+id).append('<a href="http://'+url+'">'+url+'</a>'); 
          var long2 = $(this).find('long'); 
          $('<div class="long2"></div>').html(long2).appendTo('#link_'+id); 

        }); 
       }); 
      } 
     }); 

回答

2

.html()不使用XML文档。您应该用<![CDATA[your code here]]>将HTML内容包装在XML文件中。

+0

这个工作真的很好.......谢谢! – Xtian 2010-06-15 14:23:48

0

我曾经遇到过这个问题,同时使用一些xslt的东西。显然,在webkit和一些IE版本中,你不能解析不符合你的文档类型的html。因为这样的节点将不可用于jQuery。然而,有一个解决方案,你可以通过使用nodename属性$('[nodeName=long]',xml)

+0

这看起来像我一直在寻找的解决方案,现在我只需要弄清楚如何做到这一点:) – Xtian 2010-06-15 14:15:26