使用jQuery进行XML解析
我有以下xml:
我试图用jquery解析:
$(document).ready(function(){ $.ajax({ type: "GET", url: "list.xml", dataType: "xml", success: function(xml) { $(xml).find('scenes').each(function(){ $(this).find('scene').each(function(){ var name = $(this).attr('name'); $('').html(''+name+'
').appendTo('#page-wrap'); }); }); } }); });
为什么这不起作用? 救命!! 首次尝试javascript / jquery这是基于我发现的一个例子,但到目前为止还无法使其适应我的用法。 / Lars
此代码适用于Safari和(令人惊讶的)Firefox:
$.ajax({ type: "GET", url: "list.xml", dataType: "xml", success: function(xml) { $(xml).find('Scenes').each(function(){ $(this).find('Scene').each(function(){ var name = $(this).attr('Name'); $('').html(''+name+'
').appendTo('#page-wrap'); }); }); }, error:function(a,b,c) { console.log( c ) } });
它在某些浏览器中不起作用的原因可能是由于您从文件系统托管(假设您是)。 由于同源策略,Chrome和Firefox在通过AJAX请求访问文件系统时会出错。
javascript很好。 你要么得到一个空的回复,要么得到一个错误。
这个问题可能适用:
使用Chrome中的本地文件的jQuery getJSON问题
尝试从浏览器的控制台运行代码,而不是在文档准备好时。 它将允许您更快地迭代事物。 在Firefox中尝试使用FireBug作为初学者。 我发现在调试复杂动作时,FB控制台比在基于Webkit的浏览器中更容易使用。
您也可以尝试在$.ajax()
调用中添加error
和complete
回调函数 。
$.ajax({ // ... error: function (req, err_type, ex) { console.log("error..."); }, complete: function (req, status) { console.log("complete..."); } });
您还可以尝试在成功处理程序中放入一些警报或console.logs。 足以确保您知道它正在被调用并获得您期望它获得的xml结果。
尝试改变这个:
$('')
对此:
$('.items')