Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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'_Javascript_If Statement - Fatal编程技术网

Javascript `否则,如果`从未执行;仅执行前面的'if'

Javascript `否则,如果`从未执行;仅执行前面的'if',javascript,if-statement,Javascript,If Statement,我有一个函数,它运行在一些中,在每个中,它计算孩子的数量。然后,根据子项的数量(var length),它会做一些事情 $('.member-type')。每个(函数(){ 变量长度=$(this).children('.views行').length; 如果(长度>=2){ console.log('等于或多于两个'); } 否则,如果(长度>5){ console.log(“超过五个”); } 否则{ console.log('singleitem'); } }); 第一个if语句有效,而

我有一个函数,它运行在一些
中,在每个
中,它计算孩子的数量。然后,根据子项的数量(
var length
),它会做一些事情

$('.member-type')。每个(函数(){
变量长度=$(this).children('.views行').length;
如果(长度>=2){
console.log('等于或多于两个');
}
否则,如果(长度>5){
console.log(“超过五个”);
}
否则{
console.log('singleitem');
}
});
第一个
if
语句有效,而
else
语句有效。但是由于某种原因,
else if
语句不起作用,即使
长度
高于
5
(我在控制台日志中检查过)


有人知道我做错了什么吗?

长度大于
2
时,它总是大于
5
,因此如果
语句块中出现
,它总是会出现在第一个
语句块中。更改第一个
if
中的条件,以便可以执行
else
部分:

$('.member-type').each(function() {
   var length = $(this).children('.views-row').length;
   if (length >= 2){
       console.log('equal to or more than two');
   }
   if (length > 5){
       console.log('more than five');
   }
   else{
       console.log('single item');
   }
});
if(长度>=2和长度5){
console.log(“超过五个”);
}
否则{
console.log('singleitem');
}
是。第一个if(长度>=2)还包括第二个else if(长度>5)

换句话说,如果第一个条件满足,第二个条件也满足,那么流将永远不会到达第二个块

您可以更改以下代码(我相信这更容易理解):


如果希望两个If都工作,只需删除else,因为else阻止执行第二个If:

$('.member-type').each(function() {
   var length = $(this).children('.views-row').length;
   if (length >= 2){
       console.log('equal to or more than two');
   }
   if (length > 5){
       console.log('more than five');
   }
   else{
       console.log('single item');
   }
});

你的第一个条件对于第二个条件总是正确的,所以它总是出现在if部分,而不是else if部分。我认为这个问题不应该被否决。他提出了一个想法,他为实现他的目标做出了合理的尝试,他带着一个问题来到这里,尽管这个问题很简单,但这是一个有效的问题。