根据json对象

时间:2015-09-17 01:05:03

标签: javascript jquery json ajax django

我一直在jquery中使用ajax函数从django函数中提取数据,然后根据ajax函数从django函数中获取的json对象的值,将某些css类添加到div中。我尝试使用if语句将css类添加到我想要受影响的div中,但这似乎并没有起作用,我不确定如何去做。我包含了我的ajax函数中的代码,以及我的控制台的屏幕截图,以显示json对象的样子。可以给予任何帮助。

enter image description here

$(function PYLoad() {
   'use strict';
    $.ajax({
        url: 'http://127.0.0.1:8000/json',
        type: 'GET',
        success: function (data) {
            console.log("PY_Load has Loaded successfully...");
            console.log(data);
        },
        complete: function () {
            console.log('Reloading...');
            setTimeout(PYLoad, 3000);
        }
     });
});

2 个答案:

答案 0 :(得分:1)

有点奇怪的是,json对象属性在调用之间是不同的。但是,考虑到这一点......在这里你去了

success: function (data) {
        if(data.green === "green"){
            $("#myDiv").addClass("myClass");    
        }
        if(data.red === "red"){
            $("#myDiv").addClass("myOtherClass")
        }
        if(data.default === "default"){
            $("#myDiv").addClass("myDefaultClass")
        }
},

答案 1 :(得分:0)

如果您可以控制Django函数输出的JSON对象的结构,我建议以一种允许您保持键固定和值变量的方式形成JSON,在您的情况下,键将是是颜色,变量将是绿色,红色和默认值之间的一个

{color: 'green||red||default'};

然后在你的AJAX函数中switch(data.color)就像这样:

switch(data.color){
 case "red": $('#yourDiv').addClass('red');break;
 case "green": $('#yourDiv').addClass('green'); break;
 default: $('#yourDiv').addClass('default'); break;
}

如果您无法选择如何构建JSON,那么您可以使用一些if语句

if(data.green === "green"){
  $('#yourDiv').addClass('green');
}
if(data.red === "red"){
  $('#yourDiv').addClass('red');
}
if(data.default === "default"){
  $('#yourDiv').addClass('default');
}