select制作分层级目录,让select显示和可下拉选择的"不一样"

今天遇到一个特殊的select问题,需求是这样的:每次点击这个select时,根据选择的option的值做出相应的处理并返回新的select,option内容。所以大致思路是给这个select绑定change事件,然后根据新的值的不同触发change事件,做出相应的处理。

但是这里有一个问题就是,如果被选择的值是原来的第一个值,那么是不会触发select的change事件的,如果需求是:即使值不变,只要选择了就要做出响应,那这时候就会遇到问题。这时候可以这么处理:

<select>
  <option value="" style="display:none;">1</option>
  <option value="1">1</option>
  <option value="2">2</option>
  <option value="3">3</option>
  <option value="4">4</option>
</select>

显示效果是这样的:

下拉出来不会出现两个1,display:none;的这个不会出现在下拉列表中。这时候选择"1"仍然可以触发change事件。

实际的应用场景(分层级目录):
点击第一条时返回上一层,点击其余的是选择子级节点。

原文地址:https://www.cnblogs.com/biyesheng/p/6232221.html