通过JQUERY隐藏HTML中具有数字值的SELECT选项

时间:2014-07-30 21:26:55

标签: javascript jquery html

在我的下面的选择下拉列表中,我想要隐藏只包含数字的选项(或以数字开头的选项)。

作为一个例子,我想隐藏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}。

由于

3 个答案:

答案 0 :(得分:3)

这就是我要做的事情:

http://codepen.io/anon/pen/yjBfl

$('#ajax-facets-selectbox-field-video-tags option')
  .filter(function () { return !isNaN(parseInt($(this).text())); })
  .hide();

enter image description here

答案 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>元素。