我从数据库中获取数据作为键值对,并尝试在列表视图中填充值。循环时我想将数据(item.student_class)的值更改为'你的下一个类是2',如果它的值是class1。当我按照下面的方式尝试时,它会更改列表中的所有值。
var buffer="";
$.each(data, function(index, val){
for(var i=0; i < val.length; i++){
var item = val[i];
//If the student's class is class1, change its value as below
if(item.student_class= 'class1'){var studentclass='Your next class is 2';}
buffer+='<li id="' + item.student_id+ '" data-student_class="'+studentclass+'"><a href="#"><b>' + item.student_name+'</b><span class="af-badge" style="background-color:#4a4">'+studentclass+'</span><br/>'+item.join_date+'</a></li>';
}
$('#student_list').html(buffer); });
有人可以帮助我如何实现它吗?
答案 0 :(得分:1)
您要分配一个值,而不是比较一个值,请尝试如下:
if(item.student_class== 'class1'){var studentclass='Your next class is 2';}
当您分配一个值时,它每次都会起作用,并且所有这些都将被更改。 (可能你知道,但很常见的是: - )
如果您有多个选项,可以使用以下开关语句:
var studentClass;
switch (item.student_class){
case ('class1'):
studentClass='Your next class is 2';
break;
case ('class2'):
studentClass="Your next class is 3';
break;
default:
studentClass= "Whatever should it be if nothing from cases apllies";
}
// Add rest of your code
答案 1 :(得分:1)
修复条件以不执行任务。 您正在初始化条件内的变量,因此在某些情况下可能未定义。首先将它设置为“”:即
var buffer = "";
$.each(data, function (index, val) {
for (var i = 0; i < val.length; i++) {
var studentclass = "";
var item = val[i];
//If the student's class is class1, change its value as below
if (item.student_class == 'class1') {
studentclass = 'Your next class is 2';
}
buffer += '<li id="' + item.student_id + '" data-student_class="' + studentclass + '"><a href="#"><b>' + item.student_name + '</b><span class="af-badge" style="background-color:#4a4">' + studentclass + '</span><br/>' + item.join_date + '</a></li>';
}
$('#student_list').html(buffer);
});