我的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();

10-02 15:52