jquery XML .html()而不是.text()没有显示?

时间:2010-06-14 22:40:51

标签: jquery html xml

我似乎无法弄清楚这个问题。我试图让xml呈现html标签。我使用.text()的问题将显示但不能识别任何html标签。如果我使用.html()或只是调用var long2 = $(this).find('long');什么都不会出现在Safari或IE中。

我有xml段落 我这里的文字需要粗体标签或标签这就是为什么我需要识别xml中的html标签。

代码:

$(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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

我曾经在处理一些xslt时遇到过这个问题。显然在webkit和一些IE版本中你无法解析不符合你的doctype的html。因此,jquery将无法使用节点。但是,有一个解决方案,您可以使用节点名称$('[nodeName=long]',xml)

进行元素查询