首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jquery divide转换为int问题

Jquery divide转换为int问题
EN

Stack Overflow用户
提问于 2011-07-20 06:50:12
回答 5查看 1.9K关注 0票数 0

我尝试在Jquery中划分两个变量,如下所示:

代码语言:javascript
复制
var image_width = parseInt($object.width());
var image_height = parseInt($object.height());  
var image_ratio = image_width/image_height;

但是,当我尝试在if语句中使用image_ratio时...

代码语言:javascript
复制
if (image_ratio < 1) //image is taller than it is wide
{
    //do something...
}

我知道图像的高度大于宽度,但是函数没有进入if语句。这是因为当两个int的除法生成一个int吗?如果是这样,我如何获取十进制值以检查比率是否小于1?

谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-07-20 06:55:56

alert($object.height())的结果是什么?如果$object可能是一个空的jquery集合,那么.height()将返回nullparseInt(null)将返回NaN,从而为您提供image_ratioNaNNaN和其他值之间的任何比较都将始终返回false,这将解释您所看到的行为。

如果$object.height()返回0,您还将获得image_ratioNaN,然后您需要查看您的jQuery选择。您是否选择了正确的元素?$object[0].height给了你什么?

票数 4
EN

Stack Overflow用户

发布于 2011-07-20 07:05:16

JavaScript doesn't have ints, only "Numbers" (double-precision floating point),所以这不是问题所在。

检查每个变量的实际值。

票数 2
EN

Stack Overflow用户

发布于 2011-07-20 06:58:29

您还犯了其他错误,因为如果两个数字除以不完全均匀,将返回一个十进制值。这里有一个你可以自己看的jsFiddle:http://jsfiddle.net/jfriend00/wnh9Q/

代码语言:javascript
复制
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(),看看哪里出了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6755058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档