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-->falseCSS值始终是字符串。CSS值始终是字符串。