Bootstrap 选择器数据子文本消失

Bootstrap Selectpicker data-subtext disappears

一直在使用 Bootstrap Selectpicker,但是当我将数据内容添加到数据子文本以用颜色突出显示选择时,子文本消失了。尝试了多种方式,但潜台词仍然从下拉列表中消失。有什么想法或解决方法吗?

请原谅缺少代码,我在本地拥有一切 运行,因为我的慢速宽带与 CDN 斗争。

<select class="selectpicker" data-style="btn-light" data-width="100%" multiple data-max-options="2">
<option data-content="<span class='label label-success'>Choice1</span>" data-subtext="Subtext1">Choice1</option>
<option data-content="<span class='label label-info'>Choice2</span>" data-subtext="Subtext2">Choice2</option>
<option data-content="<span class='label label-warning'>Choice3</span>" data-subtext="Subtext3">Choice3</option>
</select>

这里有一个 approach/workaround 可以做到这一点:

$('select.selectpicker').selectpicker();
.bootstrap-select .filter-option .text-muted {
  display: none;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>


<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/css/bootstrap-select.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.12.4/js/bootstrap-select.min.js"></script>


<select class="selectpicker" data-style="btn-light" data-width="100%" multiple data-max-options="2">
<option data-content="<span class='label label-success'>Choice1 </span> <small class='text-muted'>Subtext1</small>">Choice1</option>
<option data-content="<span class='label label-info'>Choice2 </span><small class='text-muted'>Subtext2</small>">Choice2</option>
<option data-content="<span class='label label-warning'>Choice3 </span><small class='text-muted'>Subtext3</small>">Choice3</option>
</select>

删除了 data-subtext 属性并将相同的 HTML 添加到 data-content(这只是 CSS class text-muted 待补充,例如:

<option data-content="<span class='label label-success'>Choice1 </span> <small class='text-muted'>Subtext1</small>">Choice1</option>

添加了 CSS 以隐藏 selected 选项的潜台词。尝试删除它,您会发现不同之处。

希望对您有所帮助。

编辑

要使多个 select 选择器基于克隆元素工作,而不是添加 classes carerClasscarerCopy,请将它们添加为 ID 或 data- 属性并基于该属性克隆它们。添加 classes 的问题是 selectpicker 初始化选择那些 classes 并将其添加到生成的 bootstrap HTML 代码中,从而使克隆保持在循环并弄乱 selection。有关详细信息,请检查 DOM 中的克隆元素 non-working fiddle.

  1. 更改您添加到 ID 或 data-attribute 的 classes。

  2. 首先克隆 select 元素,然后启动 select 选择器。

这是你的 fiddle:

的叉子

https://jsfiddle.net/z7xzt96a/