如果,否则如果循环中断

时间:2013-05-01 14:30:44

标签: jquery if-statement

我刚写了一个小的if,else if循环,我在控制台中遇到unexpected token ';'错误。如果我在每个;语句后删除了$(this).css('top', top-3"em");,则会在}出现意外之前收到另一个错误else if

这是我的循环,我可能误入歧途的任何想法?

$('div.result').each(function() {

    $(this).css('top', top+"em");
    top = top + 8;

    resultcount = resultcount - 1;

    if(resultcount=5) {
        $(this).css('top', top-3"em");
    } else if(resultcount=4) {
        $(this).css('top', top-7"em");
    } else if(resultcount=3) {
        $(this).css('top', top-14"em");
    } else if(resultcount=2) {
        $(this).css('top', top-20"em");
    } else(resultcount=1) {
        $(this).css('top', top-30"em");
    }

});

3 个答案:

答案 0 :(得分:3)

您正在设置resultcount var,您没有检查它:

if(resultcount===5) {
    $(this).css('top', "top-3em");
} 
else if(resultcount===4) {
    $(this).css('top', "top-7em");
} 
else if(resultcount===3) {
    $(this).css('top', "top-14em");
} 
else if(resultcount===2) {
    $(this).css('top', top-20"em");
} 
else {
    $(this).css('top', "top-30em");
}

使用===检查结果和类型。

此外还有很多语法错误,请尝试使用开发人员工具进行调试。

答案 1 :(得分:2)

试试这个 如果忘记在每个css参数中添加+,则应使用==而不是= inside。

  $('div.result').each(function() {

        $(this).css('top', top + " em");
        top = top + 8;

        resultcount = resultcount - 1;

        if(resultcount ==5) {
            $(this).css('top', top-3 + "em");
        } else if(resultcount==4) {
            $(this).css('top', top-7 + "em");
        } else if(resultcount==3) {
            $(this).css('top', top-14 + "em");
        } else if(resultcount==2) {
            $(this).css('top', top-20 + "em");
        } 

    });

答案 2 :(得分:1)

您的语法错误很少,可能需要更多地修正。

  • 您需要使用等于运算符===而不是赋值运算符=

  • 你错过了if if last last if。

  • 您必须使用+来连接字符串top-3"em"将是(top-3)+"em"

这是语法错误

<强> Live Demo

$('div.result').each(function() {

    $(this).css('top', top+"em");
    top = top + 8;

    resultcount = resultcount - 1;

    if(resultcount===5) {
        $(this).css('top', (top-3)+"em");
    } else if(resultcount===4) {
        $(this).css('top', (top-7)+"em");
    } else if(resultcount===3) {
        $(this).css('top', (top-14)+"em");
    } else if(resultcount===2) {
        $(this).css('top', (top-20)+"em");
    } else if(resultcount===1) {
        $(this).css('top', top-30+"em");
    }    
});