Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将语句添加到if-else块破坏了我的代码_Javascript_Jquery_String_Compare - Fatal编程技术网

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

Javascript 将语句添加到if-else块破坏了我的代码,javascript,jquery,string,compare,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('th

这可以工作(它将一些文本打印到屏幕上):

但是,这没有任何作用:

$(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,你这个愚蠢的东西”——或者类似的话

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')
       keyTot++
    )
应该是:

} else if (theSibling == 'keywords'){
       $(this).before('the string is keywords')
       keyTot++
    }
花括号对于多个命令是必需的,这就是为什么您没有得到错误

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

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

这是有效的,但没有用…

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

您使用的是常规大括号,而您应该使用花括号。 if和else的正确sintax是
if(){}else if(){}

因此,您的两个块都是错误的

如果您使用分号(在我看来,您通常应该在JS中使用分号)?@JamesMcLaughlin我强烈反对分号“完全符合风格”@Adrian,尽管您可能不同意,但在javascript中绝对不需要使用分号。(顺便说一句,我确实使用了它们,可能是因为我的主要语言是C#?)@gdoron比这更有趣:@gdoron既然你使用了它们,你就不会因为不使用它们而被咬。依赖于正确处理模棱两可的情况很少是正确的答案,并且会导致不一致的编码风格。虽然这不是本案的问题,但为什么要冒险成为问题呢?哦,天哪,就是这样!我真不敢相信我错过了。非常感谢:)谢谢,我现在觉得有点冲动:)@JamesMcLaughlin。出于某种原因,很多人都这么认为(
} else if (theSibling == 'keywords')
    ($(this).before('the string is keywords'))