You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery操作bootstrap selectpicker的option时show方法失效如何解决

问题原因

你代码里存在两个核心错误导致效果不生效:

  • jQuery获取值的方法调用错误:你用了不存在的value()方法,正确的取值方法是val(),这导致你根本拿不到子选项对应的父级ID,所有判断逻辑都不会按预期执行。
  • 操作逻辑不符合bootstrap-select的渲染规则:bootstrap-select初始化后会生成自定义的下拉列表DOM结构,你直接修改原生<option>的显示隐藏状态不会同步到插件渲染的UI上,这类操作需要符合插件的约定规则。

正确实现代码

你可以通过给匹配失败的option添加disabled属性实现隐藏,bootstrap-select默认会隐藏禁用的选项,示例代码如下:

$("#parent").on('change', function (e) { 
  const parentId = $(this).val();
  $("#child option").each((i, a) => {
    const childParentId = $(a).val();
    // 不匹配的选项设为禁用,匹配的解除禁用
    $(a).prop('disabled', childParentId != parentId);
  });
  $("#child").selectpicker("refresh");
});

如果需要完全隐藏选项而非禁用,也可以给option设置data-hidden属性后刷新,效果一致。

内容的提问来源于stack exchange,提问作者Debunkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 17:06:04