JQuery,AJAX,比较返回的JSON值

时间:2017-11-06 22:26:13

标签: javascript jquery json

我在这里做错了什么?对于第一个条件(=== 5),灰色类被删除但是没有用其他条件语句删除?

感谢您查看,

使用Javascript:

	function getTrophy() {
		$.ajax({
			url: "ajax/ajax_dashboard.php?f=14",
			type: "GET",
			success: function(data) {
				var json;
				json = $.parseJSON(data);
				if(parseInt(json.volunteer[0])===5) {
					$("#volunteer-trophy").removeClass("grey");
				}				
				if(parseInt(json.mindful[0])>=5) {
					$("#mindful-trophy1").removeClass("grey");
				}				
				if(parseInt(json.mindful[0])>=10) {
					$("#mindful-trophy2").removeClass("grey");
				}
				if(parseInt(json.mindful[0])>=15) {
					$("#mindful-trophy3").removeClass("grey");
				}
				if(parseInt(json.mindful[0])>=20) {
					$("#mindful-trophy4").removeClass("grey");
				}
      }
    })
  }

JSON

​{"volunteer" : "5", "mindful" : "10"}

1 个答案:

答案 0 :(得分:0)

要实现预期的结果,所以您的代码应该是这样的:

            if(parseInt(json.volunteer)===5) {
                $("#volunteer-trophy").removeClass("grey");
            }               
            if(parseInt(json.mindful)>=5) {
                $("#mindful-trophy1").removeClass("grey");
            }               

更好的是,为了避免错误,您应该将volunteermindful存储在变量中:

            var volunteer = parseInt(json.volunteer);
            var mindful   = parseInt(json.mindful);
            if( volunteer === 5) {
                $("#volunteer-trophy").removeClass("grey");
            }               
            if( mindful >= 5) {
                $("#mindful-trophy1").removeClass("grey");
            }               

更新:正如@charlietfl所指出的,最后3个条件是多余的,因为mindful > 5的测试满足了后面三个条件的条件。