Javascript 向跨度元素添加类不起作用

Javascript 向跨度元素添加类不起作用,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我在ajax成功方法中接收到一个具有大量数据的大型JSON对象 但是,当我在JSON列表上迭代并希望向每个元素添加单个类时,事情就不起作用了 我在这里粘贴的代码片段在ajax成功方法中 $.each(data, function(index,jsonObject){ console.log(jsonObject.spanId+":"+jsonObject.status) if(jsonObject.status != null && jsonObject.stat

我在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"
    }
]
您可以使用span ID,这可能是不起作用的

选择器的Plus
是伪类的保留字


hi,只是缺少了一些东西,而且数据(从外观上看)放错了位置

尝试运行以下命令:

  $.each(data, function(index){
      console.log(data[index].spanId+":"+data[index].status)

  });
请注意,您需要告诉循环要引用哪个数组项:

  data[index]
“每个”都在阵列上循环:

   $.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"
    }
   ]

与您可能期望的相反,在ids中使用冒号是可以的,尽管只有HTML5开始接受以数字开头的ids。为了更好的互操作性,建议在ids开头加上字母,而不要首先使用冒号

也就是说,如果必须在标识符中使用冒号,则在将冒号用作选择器的一部分时必须将其转义:

$('25_31_17\\:00') // this works fine
或者,如果要根据元素的标识符查找元素,您可能还需要考虑:

$(document.getElementById(jsonObject.spanId)) // this will work too

提供你的一大块数据,否则没有人能帮助你。jquery addClass方法确实有效。可能是因为
它可能不起作用。尽管
在这里无效,但您是否尝试过
$(document.getElementById(jsonObject.spanId))
?我的答案会解决您的问题。是的,很遗憾,它不起作用,因为:在选择器中,现在我删除了它和它的工作感谢!!!所有的规则都在我的答案中链接的stackoverflow帖子中。是的,尽可能的引用“完美”,但无论如何都不建议。。