我的代码如下:
<div id="tags">
<ul>
</ul>
</div>
我想使用json数据
将一些项目附加到列表中 $.getJSON("data.json", function (data) {
var html = '';
var len = data.tags.length;
for (var i = 0; i < len; i++) {
html += '<li><a href="#">' + data.tags[i].tag + '</a></li>';
}
$("#tags ul").append(html);
})
.done(function () {
console.log("second success");
})
.fail(function(err){console.log(err)});
但没有任何反应,我的错误在哪里?
答案 0 :(得分:5)
您的方法
只要data.json中的JSON结构采用以下格式,您的代码就可以正常工作 -
{
"tags": [
{
"tag": "Tag1"
},
{
"tag": "Tag2"
},
{
"tag": "Tag3"
},
{
"tag": "Tag4"
}
]
}
建议的方法
如果你的JSON在这个结构中 -
{
"tags": [
"Tag1",
"Tag2",
"Tag3",
"Tag4"
]
}
使其工作的JavaScript将是 -
$(document).ready(function(){
$.getJSON( "data.json", function( data ) {
var items = '';
$.each( data.tags, function( key, val ) {
items += '<li id="' + key + '"><a href="#">' + val + '</a></li>';
});
$("#tags ul").append(items);
}).done(function () {
console.log("Success");
}).fail(function(err){
console.log(err)
});
});
这将在您的DOM中生成以下HTML -
<div id="tags">
<ul>
<li id="0"><a href="#">Tag1</a></li>
<li id="1"><a href="#">Tag2</a></li>
<li id="2"><a href="#">Tag3</a></li>
<li id="3"><a href="#">Tag4</a></li>
</ul>
</div>
答案 1 :(得分:1)
使用测试json工作小提琴
$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20%2a%20from%20yahoo.finance.quotes%20WHERE%20symbol%3D%27WRC%27&format=json&diagnostics=true&env=store://datatables.org/alltableswithkeys&callback", function (data) {
var html = '';
var len = data.query.count;
for (var i = 0; i < len; i++) {
html += '<li><a href="#">' + data.query.created + '</a></li>';
}
$("#tags ul").append(html);
})
.done(function () {
console.log("second success");
})
.fail(function(err){console.log(err)});
在for循环中的我打印始终创建的属性,因为只有一个查询元素
我所处理的json部分是以下
{"query":{"count":1,"created":"2014-05-26T22:23:03Z"}}
在你的情况下,问题是json的url进行重定向。
在this中测试(然后点击“提出请求”)网站并查看此消息错误,解释您的问题
我们无法成功提出请求 http://myjtest.altervista.org/tagcloud/data.json
这可能是因为跨站点HTTP请求和您的服务器 没有适当的Access-Control-Allow-Origin和 Access-Control-Allow-Methods标题。
答案 2 :(得分:0)
看起来您的json文件无效
也许你使用单引号而不是双引号或其他东西。检查您的data.json
文件。
根据您的js代码,您的文件data.json
应该是这样的:
{
"tags":[
{"tag":"name1"},
{"tag":"name2"},
{"tag":"name3"}
]
}