将语句添加到if-else块会破坏我的代码

时间:2012-11-13 16:30:44

标签: javascript jquery string compare

这有效(它会在屏幕上打印一些文字):

$(document).ready(function() {

var uspTot = 1
var keyTot = 5

    $('.field .button').click(function(){
    var theSibling = $(this).siblings('div').attr('id');
    if (theSibling == 'usp'){
       $(this).before('the string is usp')
       uspTot++ 
    } else if (theSibling == 'keywords')(
       $(this).before('the string is keywords') 
    )
});

然而,这没有做任何事情:

$(document).ready(function() {

var uspTot = 1
var keyTot = 5

    $('.field .button').click(function(){
    var theSibling = $(this).siblings('div').attr('id');
    if (theSibling == 'usp'){
       $(this).before('the string is usp')
       uspTot++ 
    } else if (theSibling == 'keywords')(
       $(this).before('the string is keywords')
       keyTot++
    )
});

两者之间唯一的区别就是这段代码:

keyTot++

我无法理解为什么这完全打破了我的基本脚本,所以我希望有人可以指出并说“哦,那是因为你忘记了XXXX,你愚蠢的事情” - 或者说是这样的话。 / p>

4 个答案:

答案 0 :(得分:2)

你得到大括号错字:

} else if (theSibling == 'keywords')(
       $(this).before('the string is keywords')
       keyTot++
    )

应该是:

} else if (theSibling == 'keywords'){
       $(this).before('the string is keywords')
       keyTot++
    }

大括号对于多个命令是必需的,这就是为什么你没有收到错误。

当您使用常规大括号时,代码被视为:

} else if (theSibling == 'keywords')
    ($(this).before('the string is keywords'))

哪个有效,但没用......

答案 1 :(得分:1)

else if (theSibling == 'keywords')(
        $(this).before('the string is keywords')
        keyTot++
)

你想要花括号:

else if (theSibling == 'keywords'){
        $(this).before('the string is keywords')
        keyTot++
}

答案 2 :(得分:0)

你正在使用常规支撑,你应该使用花括号。 if和else的正确语法是if(){} else if () {} 所以你的两个块都错了

答案 3 :(得分:-1)

$this.before();语句后您缺少分号。