js菜鸟求助 js if-else判断语句的问题

这样一个,点击按钮弹出提示,再点击隐藏提示的简单功能,为什么我写的代码,开始要点第二次才行,第一次点击的时候没反应效果:代码如下:css:<styletype="text... 这样一个,点击按钮弹出提示,再点击隐藏提示的简单功能,为什么我写的代码,开始要点第二次才行,第一次点击的时候没反应
效果:

代码如下:
css:
<style type="text/css">
ul#tips{ list-style:none; display:none;}
li{ width:90px;border:1px solid #ccc;}
</style>

html:
<input type="button" id="btn" value="点击"/>
<ul id="tips">
<li>tips1</li>
<li>tips2</li>
<li>tips3</li>
</ul>

script:
<script type="text/javascript">
function show(){
var btn=document.getElementById("btn");
var tips=document.getElementById("tips");
btn.onclick=function(){
if(tips.style.display=="none"){
tips.style.display="block"
}
else{tips.style.display="none"}
}
}
window.onload=function(){show();}
</script>
改了一下if语句
if(tips.style.display=="block"){
tips.style.display="none"
}
else{tips.style.display="block"}
}

这样先判断block才可以,什么原因?
展开
 我来答
kongderay
推荐于2016-02-16 · TA获得超过256个赞
知道小有建树答主
回答量:299
采纳率:0%
帮助的人:175万
展开全部
因为你没有给你的<ul id="tips">这里设置display等于none的属性
而你这里是这样写的
if(tips.style.display=="none"){
tips.style.display="block"
}
else{tips.style.display="none"}
就是说点第一次的时候进到了else这里,这是后才给tips.style.display赋了个none值
然后点第二次if(tips.style.display=="none")这里才生效.
追问
我感觉,不管if等于什么  第一次点击都会进到else里呢?
if(tips.style.display=="block"){
alert("0")}else{alert("1")}

这样不管if display等于什么 第一次点击都会alert 1,
是不是这样理解,没有点击的时候,display值为空,不是none也不是block,所以都会执行else
追答
对啊,所以我才说你没有给你的这个元素设置上display属性,所以display值为空,那就会执行else,让后再去给它赋none值嘛
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式