我在ajax成功方法中收到一个包含大量数据的大型JSON对象 但是当我在JSON列表上进行迭代并希望为每个元素添加单个类时,事情就无法正常工作。
我在这里粘贴的代码片段是ajax成功方法
$.each(data, function(index,jsonObject){
console.log(jsonObject.spanId+":"+jsonObject.status)
if(jsonObject.status != null && jsonObject.status != undefined){
if(jsonObject.status == "Available"){
$('#'+jsonObject.spanId).addClass("availableTime");
}else{
$('#'+jsonObject.spanId).addClass("vacantTime");
}
}
});
我已经尝试了很多但无法完成,请帮助我。
我正在添加我的json对象的块
[
{
"spanId": null,
"status": null
},
{
"spanId": null,
"status": null
},
{
"spanId": "25_31_15:00",
"status": "Available"
},
{
"spanId": "25_31_15:30",
"status": "Available"
},
{
"spanId": "25_31_16:00",
"status": "Available"
},
{
"spanId": "25_31_16:30",
"status": "Available"
},
{
"spanId": "25_31_17:00",
"status": "Available"
}
]
答案 0 :(得分:1)
答案 1 :(得分:1)
与您的预期相反,在ID中使用冒号是可以的,尽管只有HTML5开始接受以数字开头的ID。为了获得更好的互操作性,建议首先使用字母启动ID,而不是首先使用冒号。
也就是说,如果你必须在标识符中使用冒号,那么当你将它们用作选择器的一部分时,你必须将它们转义:
$('25_31_17\\:00') // this works fine
或者,如果您要按标识符查找元素,则可能还需要考虑:
$(document.getElementById(jsonObject.spanId)) // this will work too
答案 2 :(得分:0)
我还缺少一些东西而 数据 位置错误(看起来很像)
尝试运行:
$.each(data, function(index){
console.log(data[index].spanId+":"+data[index].status)
});
请注意,您需要告诉循环引用哪个数组项:
data[index]
并且'each'循环遍历数组:
$.each(data, function(index){ ...
编辑数据参考:
var data = [
{
"spanId": null,
"status": null
},
{
"spanId": null,
"status": null
},
{
"spanId": "25_31_15:00",
"status": "Available"
},
{
"spanId": "25_31_15:30",
"status": "Available"
},
{
"spanId": "25_31_16:00",
"status": "Available"
},
{
"spanId": "25_31_16:30",
"status": "Available"
},
{
"spanId": "25_31_17:00",
"status": "Available"
}
]