利用js和css实现Bootstrap下拉列表数据过滤

青旅半醒 2022-08-22 14:29 216阅读 0赞

Bootstrap的下拉列表实现了数据的下拉展示,效果不错。
可以,如果是多个下拉列表,并且有级联关系,那么如何实现下拉列表数据的过滤呢?
笔者通过简单的css过滤来实现数据的过滤,免除了数据需要异步加载数据。笔者采用的方式是:


通过jquery的选择器选择没有隐藏的列表,设置为隐藏,再选择当前选择省份相关城市的列表,删除隐藏样式。


比如:加载省份,城市数据。
假设下拉列表数据通过jsp或者javascript的模板生成了li的下拉列表数据,我们在省份列表中,每一项添加一个javascript函数,参数为省份代码,城市列表中添加一个省份代码的列样式,代码如下:

  1. <c:forEach items="${lstProvinces}" var="province" varStatus="status">
  2. <li><a href="javascript:loadCityList(${province.code});">${province.name}</a></li>
  3. </c:forEach>
  4. <c:forEach items="${lstCities}" var="city" varStatus="status">
  5. <li class="city-item province-${city.province}"><a href="${city.id}">${city.name}</a></li>
  6. </c:forEach>

选择省份,过滤城市的方法实现代码如下:

  1. function loadCityList(code){
  2. if (code== -1){
  3. $('.city-item').removeClass('hidden');
  4. $("#province-btn").html('所有');
  5. }else{
  6. $(".city-item:not('.hidden')").addClass('hidden');
  7. $("province-"+code).removeClass('hidden');
  8. $("#province-btn").html($(".province-"+code).html());
  9. }
  10. }

需要的css:
.hidden{
display:none;
}

发表评论

表情:
评论列表 (有 0 条评论,216人围观)

还没有评论,来说两句吧...

相关阅读

    相关 bootstrap

    aria-label 正常情况下,form表单的input组件都有对应的label.当input组件获取到焦点时,屏幕阅读器会读出相应的label里的文本。 如: