我的select2中有2个空选项:1我添加到html以使占位符起作用,而1我不知道它从何处出现。
如何通过jquery删除空选项?
困难在于我无法从select的下拉列表中获取div来检查div的text()是否为空,因为它也跨在div中。
空div的示例:
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
<div class="select2-result-label" id="select2-result-label-12" role="option">
<span class="select2-match"></span>
</div>
</li>
填充div的示例:
<li class="select2-results-dept-0 select2-result select2-result-selectable select2-highlighted" role="presentation">
<div class="select2-result-label" id="select2-result-label-12" role="option">
<span class="select2-match"></span>
"Text1"
</div>
</li>
这是演示我的问题的工具(在我的实际html中,我只有1个空选项):
http://plnkr.co/edit/pO71Wr0k9BM2D2Z5yQWu?p=preview
最佳答案
使用filter()功能仅选择空选项,然后使用remove()将其删除
$('select option:not(:first)')
.filter(function() {
return !this.value || $.trim(this.value).length == 0 || $.trim(this.text).length == 0;
})
.remove();