如何隐藏下拉列表中除最大值以外的所有选项?
How can I hide all options in a dropdown list except the max value?
我为在线杂志构建了一个内容提交表单,其中有一个下拉列表,其中预先填充了一个增量值列表,对应于杂志的"issues"(第 1 期、第 2 期、等),以及每个选项自动递增的选项值。
<select name="input_7" id="input_23_7" class="large gfield_select" tabindex="2" aria-required="true" aria-invalid="false">
<option value="">-- select a Issue --</option>
<option value="351">Issue 1</option>
<option value="370">Issue 2</option>
</select>
在上面的示例中,我想 hide/remove 问题 2 之前的所有内容。展望未来,理想的解决方案是隐藏 current/latest 问题之前的所有内容 - 不知何故只显示最大值在该下拉列表中,以便用户在提交内容时只能选择一个选项(最新一期)。
因为它是从现有的值列表中预先填充的,所以不能手动覆盖它,所以我正在寻找一种方法,最好通过 JQuery,只显示最新的可用选项.
作为一个临时的解决方法,虽然杂志还很新,所以几乎没有可用的选项,但我已经通过 jQuery 从每个选项中提取了文本,并将其作为 class 添加到各自的选项,使我能够通过 CSS 隐藏它,或通过 jQuery 的 remove() 函数来定位它,如下所示。
(function($){
$('#input_23_7 option').each(function(){
var theText = $(this).html();
var cleanText = theText.replace(/ /g, "_");
$(this).addClass(cleanText);
});
$('#input_23_7 option.Issue_1').remove();
})(jQuery);
这在短期内效果很好,但我每次都需要手动添加要删除的每个问题,并且随着它变得越来越大,从长远来看,这将成为一个不切实际的解决方案。
我确信还有更多 eloquent 解决方案,但这超出了我有限的专业知识范围。任何帮助将不胜感激。
我认为这样的事情应该可以解决您的问题。
$('#input_23_7').find('option').not(':last').remove();
这应该删除除最后一个选项之外的所有内容。
我为在线杂志构建了一个内容提交表单,其中有一个下拉列表,其中预先填充了一个增量值列表,对应于杂志的"issues"(第 1 期、第 2 期、等),以及每个选项自动递增的选项值。
<select name="input_7" id="input_23_7" class="large gfield_select" tabindex="2" aria-required="true" aria-invalid="false">
<option value="">-- select a Issue --</option>
<option value="351">Issue 1</option>
<option value="370">Issue 2</option>
</select>
在上面的示例中,我想 hide/remove 问题 2 之前的所有内容。展望未来,理想的解决方案是隐藏 current/latest 问题之前的所有内容 - 不知何故只显示最大值在该下拉列表中,以便用户在提交内容时只能选择一个选项(最新一期)。
因为它是从现有的值列表中预先填充的,所以不能手动覆盖它,所以我正在寻找一种方法,最好通过 JQuery,只显示最新的可用选项.
作为一个临时的解决方法,虽然杂志还很新,所以几乎没有可用的选项,但我已经通过 jQuery 从每个选项中提取了文本,并将其作为 class 添加到各自的选项,使我能够通过 CSS 隐藏它,或通过 jQuery 的 remove() 函数来定位它,如下所示。
(function($){
$('#input_23_7 option').each(function(){
var theText = $(this).html();
var cleanText = theText.replace(/ /g, "_");
$(this).addClass(cleanText);
});
$('#input_23_7 option.Issue_1').remove();
})(jQuery);
这在短期内效果很好,但我每次都需要手动添加要删除的每个问题,并且随着它变得越来越大,从长远来看,这将成为一个不切实际的解决方案。
我确信还有更多 eloquent 解决方案,但这超出了我有限的专业知识范围。任何帮助将不胜感激。
我认为这样的事情应该可以解决您的问题。
$('#input_23_7').find('option').not(':last').remove();
这应该删除除最后一个选项之外的所有内容。