javascript if语句
if(cont.indexOf(first)){$('#product_list_first').show();}elseif(cont.indexOf(second))...
if(cont.indexOf(first)){$('#product_list_first').show();}
else if(cont.indexOf(second)){$('#product_list_second').show();}
else if(cont.indexOf(thirdly)){$('#product_list_thirdly').show();}
为什么只执行第一个,只有第一个if有show效果,接下2个不行,是什么问题 展开
else if(cont.indexOf(second)){$('#product_list_second').show();}
else if(cont.indexOf(thirdly)){$('#product_list_thirdly').show();}
为什么只执行第一个,只有第一个if有show效果,接下2个不行,是什么问题 展开
2个回答
展开全部
由于numm变量中是一个存在字符的字符串,在JS中,由于if()语句的括号中需要一个布尔类型的值,而当它的值不是布尔类型时,JS会尝试将其转变为布尔值。
那么,我们进行一个类型测试代码,你放在你的浏览器中运行一下,就知道各种情况转换为布尔值将会如何:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>测试各种情况下的布尔转换</title> </head> <body> <script>//空字符串转布尔:document.write("“''”转换为布尔值为:" + Boolean('') + '<hr/>');//字符串0转布尔:document.write("“'0'”转换为布尔值为:" + Boolean('0') + '<hr/>');//任意字符串转布尔:document.write("“'false'”转换为布尔值为:" + Boolean('false') + '<hr/>');//null转换为布尔:document.write("“null”转换为布尔值为:" + Boolean(null) + '<hr/>');//数字0转换为布尔:document.write("“0”转换为布尔值为:" + Boolean(0) + '<hr/>');//数字1转换为布尔:document.write("“1”转换为布尔值为:" + Boolean(1) + '<hr/>');//大于1的整数数字转换为布尔:document.write("“6”转换为布尔值为:" + Boolean(6) + '<hr/>');//大于0的浮点数转换为布尔:document.write("“0.25”转换为布尔值为:" + Boolean(0.25) + '<hr/>');//负数转换为布尔:document.write("“-25”转换为布尔值为:" + Boolean(-25) + '<hr/>');//对于if来说,还可以对未赋值(undefined)进行直接判断:if(!a) document.write("变量a未赋值<hr/>");var a=0;if(typeof a != 'undefined') document.write("变量已经赋值<hr/>");</script></body> </html>
请采纳答案,支持我一下。
那么,我们进行一个类型测试代码,你放在你的浏览器中运行一下,就知道各种情况转换为布尔值将会如何:
<!doctype html> <html> <head> <meta charset="utf-8"> <title>测试各种情况下的布尔转换</title> </head> <body> <script>//空字符串转布尔:document.write("“''”转换为布尔值为:" + Boolean('') + '<hr/>');//字符串0转布尔:document.write("“'0'”转换为布尔值为:" + Boolean('0') + '<hr/>');//任意字符串转布尔:document.write("“'false'”转换为布尔值为:" + Boolean('false') + '<hr/>');//null转换为布尔:document.write("“null”转换为布尔值为:" + Boolean(null) + '<hr/>');//数字0转换为布尔:document.write("“0”转换为布尔值为:" + Boolean(0) + '<hr/>');//数字1转换为布尔:document.write("“1”转换为布尔值为:" + Boolean(1) + '<hr/>');//大于1的整数数字转换为布尔:document.write("“6”转换为布尔值为:" + Boolean(6) + '<hr/>');//大于0的浮点数转换为布尔:document.write("“0.25”转换为布尔值为:" + Boolean(0.25) + '<hr/>');//负数转换为布尔:document.write("“-25”转换为布尔值为:" + Boolean(-25) + '<hr/>');//对于if来说,还可以对未赋值(undefined)进行直接判断:if(!a) document.write("变量a未赋值<hr/>");var a=0;if(typeof a != 'undefined') document.write("变量已经赋值<hr/>");</script></body> </html>
请采纳答案,支持我一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去掉else 改成如下代码 均可进行判断:
if(cont.indexOf(first)){$('#product_list_first').show();}
if(cont.indexOf(second)){$('#product_list_second').show();}
if(cont.indexOf(thirdly)){$('#product_list_thirdly').show();}
追问
我这样写点第二个结果3个全部都显示,不知道是什么问题,昨晚这样写可以,今天打开文件就出了问题。
追答
if(cont.indexOf(first) > -1)
if(cont.indexOf(second) > -1)
if(cont.indexOf(thirdly) > -1)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询