如果声明不起作用Javascript

时间:2015-09-21 08:59:37

标签: javascript if-statement

好的,这是我的代码。

.ajax({
        type:"POST",
        url: "data.php",
        data:{
            number:number, sprint_count:sprint_count
        },
        dataType: 'json',
        success: function(data){


            var count = data.length;
            var PlannedSprint = 0;

            for(var i = 0; i<count; i++){
                var Column = data[i].Column;
                if(PlannedSprint !== data[i].PlannedSprint){

                    $("#div"+Column+"_"+Team).append(data[i].PlannedSprint);

                 }  



                var PlannedSprint = data[i].PlannedSprint;
                var Team = data[i].Team;

                var Element = data[i].Element;


                $("#div"+Column+"_"+Team).append(Element);
            }
        }
    });

只要data[i].PlannedSprintPlannedSprint不同,我希望IF语句有效。但出于某种原因,IF声明无效。为什么会这样,if语句有什么问题?

在我看来,我觉得它应该是这样的:

var PlannedSprint = 0; // Set it to 0
if(PlannedSprint !== data[i].PlannedSprint){ // cause of PlannedSprint being set to 0 before this I believe it should work cause the data[i].PlannedSprint wont be 0.
var PlannedSprint = data[i].PlannedSprint; // And then this will give PlannedSprint a new value for the next loop instead of 0.

但这不起作用,有人可以解释一下!

3 个答案:

答案 0 :(得分:2)

您正在重新定义var语句中的变量。只需删除里面的var PlannedSprint = 0; if(PlannedSprint !== data[i].PlannedSprint){ PlannedSpint = data[i].PlannedSprint; // no "var"

{{1}}

我不会详细描述为什么会发生这种情况,你应该阅读javascript&#34; Hoisting&#34;进一步了解这种行为。

答案 1 :(得分:0)

你可能错过if语句结束标记(}) 和var PlannedSprint声明了2次

答案 2 :(得分:0)

你的if语句永远不会成立,因为你总是将前一个与下一个元素进行比较。