我尝试在Jquery中划分两个变量,如下所示:
var image_width = parseInt($object.width());
var image_height = parseInt($object.height());
var image_ratio = image_width/image_height;但是,当我尝试在if语句中使用image_ratio时...
if (image_ratio < 1) //image is taller than it is wide
{
//do something...
}我知道图像的高度大于宽度,但是函数没有进入if语句。这是因为当两个int的除法生成一个int吗?如果是这样,我如何获取十进制值以检查比率是否小于1?
谢谢!
发布于 2011-07-20 06:55:56
alert($object.height())的结果是什么?如果$object可能是一个空的jquery集合,那么.height()将返回null,parseInt(null)将返回NaN,从而为您提供image_ratio的NaN。NaN和其他值之间的任何比较都将始终返回false,这将解释您所看到的行为。
如果$object.height()返回0,您还将获得image_ratio的NaN,然后您需要查看您的jQuery选择。您是否选择了正确的元素?$object[0].height给了你什么?
发布于 2011-07-20 07:05:16
JavaScript doesn't have ints, only "Numbers" (double-precision floating point),所以这不是问题所在。
检查每个变量的实际值。
发布于 2011-07-20 06:58:29
您还犯了其他错误,因为如果两个数字除以不完全均匀,将返回一个十进制值。这里有一个你可以自己看的jsFiddle:http://jsfiddle.net/jfriend00/wnh9Q/。
var width = 4;
var height = 3;
var aspectRatio = height/width;
if (aspectRatio < 1) {
$("#if").html("Inside the if() statement."); // it goes in here
}
$("#result").html(aspectRatio); // outputs 0.75要解决您的问题,您需要查看输入值$object.width()和$object.height(),看看哪里出了问题。
https://stackoverflow.com/questions/6755058
复制相似问题