Javascript 使用jQuery创建一个由JSON的键和值填充的UL
我有的是这个 HTMLJavascript 使用jQuery创建一个由JSON的键和值填充的UL,javascript,jquery,html,json,Javascript,Jquery,Html,Json,我有的是这个 HTML <div id="catcher"></div> 我想做一个像这样的UL 项目 项目名称 项目1 项目名称 等等。 我现在得到的是对象值的每个字母和键的数字。相反,我希望它们都等于字符串 试试下面的代码,下面的代码示例仅用于循环json属性 $。每个(响应、功能(键、值){ 警报(键+”:“+值) })) jQuery.ajax({ url:“./ajax.html”, async:true, 成功:功能(响应){ var ol=“”;
<div id="catcher"></div>
我想做一个像这样的UL
- 项目名称
- 项目名称
我现在得到的是对象值的每个字母和键的数字。相反,我希望它们都等于字符串 试试下面的代码,下面的代码示例仅用于循环json属性 $。每个(响应、功能(键、值){ 警报(键+”:“+值) }))
jQuery.ajax({
url:“./ajax.html”,
async:true,
成功:功能(响应){
var ol=“”;
for(var键响应){
ol+=“”+key+”“+response[key]+”
“+””;
}
ol+=”;
jQuery(“#catcher”).append(ol);
}
});
您缺少外部有序列表。如果您首先附加该结构,并将循环附加更改为具有嵌套的
,则应获得您要查找的结构:
var数据={
“项目”:“项目名称”,
“项目1”:“项目名称”,
“项目2”:“项目名称”,
“项目3”:“项目名称”,
“项目4”:“项目名称”
}
$(“#catcher”)。追加(“”);
for(var输入数据){
$(“#catcher ol”).append(“”+key+”- “+data[key]+”
”);
}
您应该尝试将
console.log(response)
添加到成功回调中。它可能会显示response
是一个字符串,而不是一个对象
在本例中,您可以向
jQuery.ajax(…)
调用中添加dataType:'json'
,如下所述:尝试此代码。看看是否有帮助:
jQuery.ajax({url:'./ajax.html', async: true, success: function(response){
var addcode=" ";
var i=1;
$.each(response, function(key,value) {
addcode += '<ul>' + (i++) + '. ' + key;
addcode += '<li>' + value + '</li>';
addcode += '</ul>';
});
jQuery('#catcher').html(addcode);
}})
jQuery.ajax({url:'./ajax.html',异步:true,成功:函数(响应){
var addcode=“”;
var i=1;
$。每个(响应、功能(键、值){
addcode+=''+(i++)+'.+键;
addcode+='- '+value+'
';
addcode+='
';
});
jQuery('#catcher').html(addcode);
}})
您能发布当前输出的HTML吗?我非常喜欢这个解决方案,但我认为JSON有问题。我没有得到键的字符串,而是得到一系列数字1-112,这是所有键组合后字符串中的字符数。我也只得到值字符串中的一个字符作为一个项,而不是整个字符串。想法?@MaxwellSands听起来JSON仍然是一个未解析的字符串。gregfqt可能就是你要找的。
{
"Item":"Item Name",
"Item 1":"Item Name",
"Item 2":"Item Name",
"Item 3":"Item Name",
"Item 4":"Item Name"
}
jQuery.ajax({
url: './ajax.html',
async: true,
success: function(response) {
var ol = "<ol>";
for (var key in response) {
ol += "<li>" + key + "<ul><li>" + response[key] + "</li></ul>" + "</li>";
}
ol += "<ol>";
jQuery('#catcher').append(ol);
}
});
jQuery.ajax({url:'./ajax.html', async: true, success: function(response){
var addcode=" ";
var i=1;
$.each(response, function(key,value) {
addcode += '<ul>' + (i++) + '. ' + key;
addcode += '<li>' + value + '</li>';
addcode += '</ul>';
});
jQuery('#catcher').html(addcode);
}})