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