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'))