Jquery 使用ajax xml时出现空数据错误

Jquery 使用ajax xml时出现空数据错误,jquery,ajax,xml,Jquery,Ajax,Xml,我有一个简单的php页面,可以像这样回显简单的xml数据 <user> <username>jack</username> <userage>20</userage> </user> <user> <username>sally</username> <userage>30</userage> </user> <user> <usern

我有一个简单的php页面,可以像这样回显简单的xml数据

<user>
<username>jack</username>
<userage>20</userage>
</user>
<user>
<username>sally</username>
<userage>30</userage>
</user>
<user>
<username>steph</username>
<userage>40</userage>
</user>
$(document).ready(function(){

    $("#get").on('click',function(){

            $.get('dataxml.php',function(data){

                var str = '';
                $(data).find('user').each(function(){
                    var uname = ''; var uage = '';
                    $(this).find('username').each(function(){
                        uname = $(this).text();
                    });
                    $(this).find('userage').each(function(){
                        uage = $(this).text();
                    });
                    str += "<div><p class='uname'>"+uname+"</p><p class='uage'>"+uage+"</p></div>";
                });
            console.log(str);

            $("#result").html(str);
        });
    });
});

杰克
20
俏皮话
30
斯蒂芬
40
单击下面的按钮后,使用jquery代码在div中显示这些信息

<user>
<username>jack</username>
<userage>20</userage>
</user>
<user>
<username>sally</username>
<userage>30</userage>
</user>
<user>
<username>steph</username>
<userage>40</userage>
</user>
$(document).ready(function(){

    $("#get").on('click',function(){

            $.get('dataxml.php',function(data){

                var str = '';
                $(data).find('user').each(function(){
                    var uname = ''; var uage = '';
                    $(this).find('username').each(function(){
                        uname = $(this).text();
                    });
                    $(this).find('userage').each(function(){
                        uage = $(this).text();
                    });
                    str += "<div><p class='uname'>"+uname+"</p><p class='uage'>"+uage+"</p></div>";
                });
            console.log(str);

            $("#result").html(str);
        });
    });
});
$(文档).ready(函数(){
$(“#get”)。在('click',function()上{
$.get('dataxml.php',函数(数据){
var-str='';
$(数据)。查找('user')。每个(函数(){
变量uname='';变量uage='';
$(this).find('username').each(function(){
uname=$(this.text();
});
$(this).find('userage').each(function(){
uage=$(this.text();
});
str+=“

”+uname+”

“+uage+”

”; }); console.log(str); $(“#结果”).html(str); }); }); });
console显示“空字符串”,但当我查看console数据时,我得到的是图像中的数据,#result div为空。那么错误是什么?我如何修复它

当您使用

$(data).find('user')
它不会产生任何结果,因为
user
是XML文档的根节点(从技术上讲,该结构不是有效的XML)

你可以跟我一起去

$(data).each(function() {
    // ...
});
直接迭代
username
节点

但是,最好的做法是使用某个节点包装整个响应,这样XML将变成:

<users>
    <user>
        <username>jack</username>
        <userage>20</userage>
    </user>
    <user>
        <username>sally</username>
        <userage>30</userage>
    </user>
    <user>
        <username>steph</username>
        <userage>40</userage>
    </user>
</users>

杰克
20
俏皮话
30
斯蒂芬
40
然后您将能够使用
$(数据)。查找('user')


演示:非常感谢它的工作,我所做的是我从无限技能课程中学到的,但结果证明它是错误的。谢谢。用一个以上的根节点包装您的XML响应,您将能够使用
find('user')