如何更正此jquery代码的输出?

如何更正此jquery代码的输出?,jquery,if-statement,viewport,Jquery,If Statement,Viewport,此代码应打印: 如果屏幕宽度小于740或为740。 如果屏幕宽度大于740且屏幕宽度小于1065 如果屏幕宽度大于1065或小于1065 如果屏幕宽度大于1389或大于1389 但当第四个条件为真时,它总是随机显示2或3。 这里有什么问题?看看控制台 var screenWidth=$window.width; 如果屏幕宽度740&&screenWidth1065 | | screenWidth==1065{ 1.log3; }否则,如果屏幕宽度>1389 | |屏幕宽度==1389{ 1.l

此代码应打印:

如果屏幕宽度小于740或为740。 如果屏幕宽度大于740且屏幕宽度小于1065 如果屏幕宽度大于1065或小于1065 如果屏幕宽度大于1389或大于1389 但当第四个条件为真时,它总是随机显示2或3。 这里有什么问题?看看控制台

var screenWidth=$window.width; 如果屏幕宽度<740 | |屏幕宽度==740{ console.log1; }否则,如果屏幕宽度>740&&screenWidth<1065{ console.log2; }否则如果screenWidth>1065 | | screenWidth==1065{ 1.log3; }否则,如果屏幕宽度>1389 | |屏幕宽度==1389{ 1.log4; } 一旦else if的一个分支为真,那么执行将结束,而不是检查另一个分支是否也为真。根据您的逻辑,如果屏幕宽度为1400,那么screenWidth>1065 | | screenWidth==1065为真,因此您没有达到screenWidth>1389 | | screenWidth==1389检查

您可以将代码修改为:

var screenWidth = $(window).width();

if (screenWidth <= 740) {
  console.log("1");
} else if(screenWidth > 740 && screenWidth < 1065){
  console.log("2");
} else if(screenWidth >= 1065 && screenWidth < 1389) {
  console.log("3");
} else if (screenWidth >= 1389) {
  console.log("4");
}
或者你可以

var i,warr=[0,740,1065,1389],
    w=screen.width;
for (i=0;warr[i]<=w;i++){}
console.log(i);

@巴尔马:谢谢你的提示:screen.width

正确设置的条件如下所示

考虑规则,除非您真的需要JS/jQuery中的输入

var screenWidth=$window.width; 控制台屏幕宽度; 如果屏幕宽度740&&screenWidth 1065&&screenWidth 1389{ 1.log4; }
旁注:=大于或等于。$window.width不是屏幕宽度,而是窗口宽度。屏幕宽度是在if之前的screen.widthPut console.logscreenWidth。根据您想做什么,您可能应该重新考虑在此处完全取消jQuery,并在CSS中使用@media query。只是想一想,我不知道你到底想做什么,谢谢你!我必须使用jQuery,因为我正在从Instagram API加载特定数量的图片。