我在这里和其他来源阅读了许多描述,描述了使用 jquery 获取 json 并构建列表。所以,我有一个超级简单的 html 页面,上面有一个 ul:
<!DOCTYPE html>
<html>
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/main.css">
<script src="js/vendor/modernizr-2.6.2.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script>
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.10.1.min.js"><\/script>')</script>
<script src="js/main.js"></script>
<script>
$(document).ready(getElementsInGroup);
</script>
</head>
<body>
<ul id="memberList">
</ul>
</body>
</html>
我有两种方法可以在 main.js 中获取成员。第一个使用 getJson:
function getElementsInGroup() {
var url = 'http://108.250.12.12:8080/members?format=json&jsonp=?';
$.getJSON(url, null, function(data) {
var items = [];
$.each(data, function(index, element) {
items.push("<li>" + element.text + "</li>");
});
$('#memberList').append( items.join('') );
});
};
我可以在 firebug 中看到调用被触发并且结果返回:
[{"text": "Bob Jones", "id": 1}, {"text": "Mary Smith", "id": 2}]
但是,该列表不会显示,也不会出现任何错误。因此,我尝试创建一个函数版本,将硬编码结果放入其中:
function getElementsInGroup2() {
var items = [];
var data = [{"text": "Bob Jones", "id": 1}, {"text": "Mary Smith", "id": 2}];
$.each(data, function(index, element) {
items.push("<li>" + element.text + "</li>");
});
$('#memberList').append( items.join('') );
};
这产生了我正在寻找的列表。你有什么可以看出我做错了吗?