我的 IF 语句不正确吗?
Are my IF statements incorrect?
>我有以下内容:
var detail = 'two';
function chkDetail(detail){
if(detail == 'one') {
jQuery('#valMsg').text('one');
}
if(detail == 'two') {
jQuery('#valMsg').text('two');
}
if(detail == 'three') {
jQuery('#valMsg').text('three');
}
else {
jQuery('#valMsg').text('NO');
}
}
根据传递给我的函数的字符串,我希望将适当的消息传递到我的div valMsg
。
在上述情况下,我的函数不断返回NO
。
谁能告诉我这是为什么?
if
陈述不正确吗?
应该在所有语句上添加else
:
function chkDetail(detail){
if(detail == 'one') {
jQuery('#valMsg').text('one');
}
else if(detail == 'two') {
jQuery('#valMsg').text('two');
}
else if(detail == 'three') {
jQuery('#valMsg').text('three');
}
else {
jQuery('#valMsg').text('NO');
}
}
你已经分离了条件。 我将添加间距来说明:
// first condition
if(detail == 'one') {
jQuery('#valMsg').text('one');
}
// second condition
if(detail == 'two') {
jQuery('#valMsg').text('two');
}
// third condition
if(detail == 'three') {
jQuery('#valMsg').text('three');
}
else {
jQuery('#valMsg').text('NO');
}
因此,例如,如果detail
是"一",那么:
- 第一个条件进入
if
块 - 第二个条件不进入
if
块 - 第三个条件不进入
if
块,进入else
块(因为else
是if
的逻辑逆)
如果它们都应该是相同的条件,请使用else if
块:
// all one condition
if(detail == 'one') {
jQuery('#valMsg').text('one');
}
else if(detail == 'two') {
jQuery('#valMsg').text('two');
}
else if(detail == 'three') {
jQuery('#valMsg').text('three');
}
else {
jQuery('#valMsg').text('NO');
}
这样,一旦输入一个块,其余块就会被跳过,因为整个条件已经满足。
else
仅指前if
,而不是所有if
语句。
此处提供的答案不检查数据类型,这对于检查可能至关重要。
var int1 = 1
var string1 = '1'
if(string1 == int1)
会返回 true,但它们实际上并不相同。
我会使用看起来更好的代码并且还检查数据类型的 switch 语句。
var detail = 'two';
function chkDetail(detail){
switch(detail){
case 'one' : jQuery('#valMsg').text('one'),
case 'two' : jQuery('#valMsg').text('two'),
default : jQuery('#valMsg').text('No')
}
如果你想走多重if语句的路线,那么请使用===
运算符来确保也对数据类型进行检查。这将防止许多粗略的行为和错误。
if(detail === 'one') {
jQuery('#valMsg').text('one');
}
if(detail === 'two') {
jQuery('#valMsg').text('two');
}
if(detail === 'three') {
jQuery('#valMsg').text('three');
}
else {
jQuery('#valMsg').text('NO');
}
}
看看这个和这个以获取更多信息。
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 你能解释一下为什么这个javascript不正确吗
- 从int值来看,Javascript日期不正确
- jQuery-迭代不正确?(太长,无法执行)
- 字符串解析不正确
- 为什么我的不正确的 if 语句有效
- 为什么“;继续”;JavaScript中的语句不正确
- 如果语句给出不正确的结果
- 否则语句不起作用是我在 jQuery 上的语法不正确
- 我的 IF 语句不正确吗?
- 在ng中解析的Javascript语句重复操作不正确
- Javascript if语句验证不正确
- If语句不正确
- If语句计算不正确
- jQuery // 为什么这个 if 语句不正确