在我的下面的选择下拉列表中,我想要隐藏只包含数字的选项(或以数字开头的选项)。
作为一个例子,我想隐藏28(2),29(2),35(2)和49(2)。
<select data-facet="field_video_tags" id="ajax-facets-selectbox-field-video-tags" name="field_video_tags" class="form-select hide processed">
<option value="0">Select all</option>
<option value="5">First Option (11) </option>
<option value="38">Second Option (9) </option>
<option value="13">Third Option (3) </option>
<option value="28">28 (2) </option>
<option value="29">29 (2) </option>
<option value="35">35 (2) </option>
<option value="49">49 (2) </option>
<option value="8">Forth Option (2) </option>
</select>
$('select#ajax-facets-selectbox-field-video-tags').filter(function() {
return ($.isNumeric($(this).val()));
}).addClass('hide');
当然,.hide在我的CSS中被定义为{display:none}。
由于
答案 0 :(得分:3)
这就是我要做的事情:
http://codepen.io/anon/pen/yjBfl
$('#ajax-facets-selectbox-field-video-tags option')
.filter(function () { return !isNaN(parseInt($(this).text())); })
.hide();
答案 1 :(得分:0)
你在某种程度上走在正确的轨道上:DEMO
$('#ajax-facets-selectbox-field-video-tags option').filter(function() {
return /^\d+/.test( $(this).text() );
}).hide();
答案 2 :(得分:-1)
将display: none
(jQuery&#39; s hide()
所做的)应用于<option>
的行为在客户端之间是不一致的。所以你不应该依赖它而是删除元素。
$('#ajax-facets-selectbox-field-video-tags option').each(function() {
var $option = $(this);
if(null !== $option.text().match(/^\d/)) {
$option.remove();
}
})
这里是JSFiddle。
编辑:您可能可以隐藏这些项目。但我仍然不会推荐它。感觉像hide()
中的<source>
<video>
元素。