Jquery 使用ajax xml时出现空数据错误
我有一个简单的php页面,可以像这样回显简单的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
<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')
。