我在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
答案 0 :(得分:0)
$('select option:not(:first)')
.filter(function() {
return !this.value || $.trim(this.value).length == 0 || $.trim(this.text).length == 0;
})
.remove();
答案 1 :(得分:0)
这是因为在您的options.js脚本中,您要添加带有文本的新三个选项:&#39; Text1,Text2,Text3&#39;。 如果删除此代码,那么它将与html中的三个空选项一起使用。 此外,如果您在选择空选项中添加空,您将看到它们。 如果选择填充这样的数据,您将看到三个包含数据和占位符的选项:
<select id="select", multiple="true">
<option value="one">One</option>
<option value="two">Two</option>
<option value="three">Three</option>
</select>
答案 2 :(得分:0)