【发布时间】:2013-04-08 10:42:49
【问题描述】:
<script>
$(document).ready(function(){
var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>";
var data = $.parseXML(xml);
console.log(data);
$(data).find('rss').each(function(){
var name = $(this).attr('version');
$('<div class="items"></div>').html('<a href="'+name+'"></a>').appendTo('#page-wrap');
});
});
</script>
<body>
<div id="page-wrap">
</div>
</body>
上面的代码有什么问题?我只是得到一个空白页。它甚至没有超出 var 数据声明。
编辑:现在我将正确的 xml 传递给 parseXML() 但仍然没有结果。还缺少什么?
EDIT2:知道为什么下面的代码不会在 Chrome 浏览器上显示任何输出吗?尽管将脚本和 html 代码放入 JSFiddle 时会产生正确的结果。
EDIT3:使用 jquery-1.9.0 使其工作。感谢大家的帮助和支持。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="jquery.js">
$(document).ready(function(){
var xml = "<rss version='2.0'><channel><title>MyTitle</title></channel></rss>";
var data = $.parseXML(xml);
console.log(data);
$(data).find('rss').each(function(){
var name = $(this).attr('version');
$('<div class="items"></div>').html('<a href="'+name+'">'+name+'</a>').appendTo('#page-wrap');
});
});
</script>
</head>
<body>
<div id="page-wrap"></div>
</body>
</html>
【问题讨论】:
-
控制台有什么错误吗?
-
我在您的 xml 中没有看到“方法”,因此 find 不会返回任何内容。或者这是您在此处发布的一些虚拟 xml?使用您的代码并将“方法”更改为“标题”(例如)并在循环内使用 $(this).text() 我能够设置链接到“MyTitle”的 href。顺便说一句,您的链接名称也是空的。
-
如果您设置链接标题(在更正的代码中您仍然没有它),它会起作用。 See.
-
您的项目中包含的 jQuery 版本是什么?
-
在 chrome 开发工具 (f12) 的控制台选项卡中。
标签: jquery xml xml-parsing