如何在列表中进行diplaying时更改JSON数据的值?

时间:2015-08-16 21:53:21

标签: javascript jquery json each key-value

我从数据库中获取数据作为键值对,并尝试在列表视图中填充值。循环时我想将数据(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); });

有人可以帮助我如何实现它吗?

2 个答案:

答案 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);
});