使用 jQuery Mobile 进行 XML 解析
Posted
技术标签:
【中文标题】使用 jQuery Mobile 进行 XML 解析【英文标题】:XML Parsing with jQuery Mobile 【发布时间】:2013-04-06 07:43:26 【问题描述】:我正在尝试使用 jQuery mobile 解析 XML 文件。这是我的 jQuery 脚本:
<script>
$(document).ready(function()
$.ajax(
type: "GET",
url: "bars.xml",
dataType: "xml",
success: function(xml)
$(xml).find('bar').each(function()
var date = new Date();
var day = date.getDay();
var name = $(this).attr('name');
var id = $(this).attr('id');
var specials = $(this).find('specials').text();
if (id == day)
$('<li data-role="list-divider" id="link_'+id+'"></li>').html(name).appendTo('#daily-specials');
$('<li class="specials"></li>').html(specials).appendTo('#link_'+id);
);
);
);
);
</script>
还有我的 XML 文件:
<?xml version="1.0" encoding="iso-8859-1"?>
<bars>
<!-- Friday specials for bar one -->
<bar name="Bar One" id="5">
<specials>
Special 1 <br />
Special 2 <br />
Special 3 <br />
Special 4 <br />
Special 5
</specials>
</bar>
<!-- Saturday specials for bar one -->
<bar name="Bar One" id="6">
<specials>
Special 1 <br />
Special 2 <br />
Special 3 <br />
Special 4 <br />
Special 5
</specials>
</bar>
</bars>
谁能看到我做错了什么?如您所见,我正在尝试获取一周中当天的“Bar One”的特别信息,然后将该信息传递给我页面上的 HTML 类。不过,我的网站上没有打印出来。如果我什至不接近,我深表歉意,但方向会有所帮助。谢谢!
【问题讨论】:
您必须将索引和元素传递给每个函数,如下所示: $(xml).find('bar').each(function(index, barInstance) [...] 然后只需访问它 var specials = barInstance.find('specials').text(); 好吧,它对我有用jsfiddle.net/c3pnc 如果所有的栏都有相同的描述; “name = bar One”那你为什么要基于那个搜索.....???您可以在每个循环中使用每个条搜索您的数据!!! 尝试使用$.parseXML(xml) 您是在周日、周一、周二、周三还是周四运行的? 【参考方案1】:正如您所说,网站上没有任何内容。 我看到您正在使用本地 xml 文件。同源政策可能会受到影响。 我猜你使用的是chrome浏览器。 (在 chrome 上使用 F12 键的错误请参见控制台。)
在 Firefox 或 IE 上试试。
如果您仍想使用 chrome.. 请在 chrome 快捷方式的 targer 属性中添加以下内容。 --allow-file-access-from-files
希望这会有所帮助并将其标记为答案。
【讨论】:
以上是关于使用 jQuery Mobile 进行 XML 解析的主要内容,如果未能解决你的问题,请参考以下文章
使用带有 javascript、jquery mobile 的数据库
jquery mobile 与 phonegap 404 ajax 错误。但在 Firefox、IE 中运行良好