Javascript 为什么不透明度为0,但我的if语句仍然执行?

Javascript 为什么不透明度为0,但我的if语句仍然执行?,javascript,jquery,opacity,Javascript,Jquery,Opacity,我有一个关于密码的问题 我使用$(this.css('opacity')检查元素是否透明。当元素是透明的时,它应该返回0 但是,if($(this).css('opacity')!==0)在返回0时执行。知道为什么会这样吗 提前谢谢 我的代码在这里: CSS值以字符串形式返回。像这样改变条件 if( $(this).css('opacity') !== "0" ) 或 CSS值以字符串形式返回。像这样改变条件 if( $(this).css('opacity') !== "0" ) 或 这是

我有一个关于密码的问题

我使用
$(this.css('opacity')
检查元素是否透明。当元素是透明的时,它应该返回0

但是,
if($(this).css('opacity')!==0)
在返回0时执行。知道为什么会这样吗

提前谢谢

我的代码在这里:


CSS值以字符串形式返回。像这样改变条件

if( $(this).css('opacity') !== "0" )


CSS值以字符串形式返回。像这样改变条件

if( $(this).css('opacity') !== "0" )


这是因为CSS值总是作为字符串返回(与返回数字的
height
width
jQuery方法不同)

如果此测试对您有效,请尝试:

if( parseFloat($(this).css('opacity')) !== 0 )
或者简单地使用弱(类型强制)不等式:

if( $(this).css('opacity') != 0 )

这是因为CSS值总是作为字符串返回(与返回数字的
height
width
jQuery方法不同)

如果此测试对您有效,请尝试:

if( parseFloat($(this).css('opacity')) !== 0 )
或者简单地使用弱(类型强制)不等式:

if( $(this).css('opacity') != 0 )

您需要首先解析该值。因此,您的if将是

if(parseFloat($(this).css('opacity'))!==0)


编辑:parseInt到parseFloat

您需要首先解析该值。因此,您的if将是

if(parseFloat($(this).css('opacity'))!==0)


Edit:parseInt到parseFloat

原因是该条件确实为真。css('opacity')返回一个字符串;因此,在您的情况下,它将返回“0”,这当然与数字0不同,因为您使用的是不完全相等的运算符(!=)

您可能应该使用不相等运算符(!=)

“0”!==0-->真
'0' != 0-->假

原因是该条件确实为真。css('opacity')返回一个字符串;因此,在您的情况下,它将返回“0”,这当然与数字0不同,因为您使用的是不完全相等的运算符(!=)

您可能应该使用不相等运算符(!=)

“0”!==0-->真
'0' != 0-->false

CSS值始终是字符串。CSS值始终是字符串。