js 三元运算符的使用问题

我想要达到的效果如图
图片描述

当我点击图片红色区域,会显示或折叠它的子标签

我用js实现

e.getElementsByTagName('ul')[0].style.display = e.getElementsByTagName('ul')[0].style.display=='block'?'none':'block'; //这个代码没问题,可以实现效果
var k = e.getElementsByTagName('ul')[0].style.display;
 (k == 'block') ? k='none': k='block'; //这个代码就不行,为什么?

关于第二点我终于想明白了,相当于重新给k赋值了,等于把之前的值给覆盖了,所以不行,但如果按照hsfzxjy解答的代码就没问题,相当于把值赋给了k的display对象

阅读 3.5k
4 个回答

你赋值的事k不是e.getElementsByTagName('ul')[0].style.display

var k=e.getElementsByTagName('ul')[0].style
k.display == 'block' ? k.display = 'none' : k.display = 'block'

k='none' 和 k='block' 这两个赋值无效。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题