显示不包含值hello_的所有选择框选项

时间:2013-06-21 21:41:49

标签: jquery

所以我希望能够隐藏所有选项,然后只显示其值中不包含hello_的选项。这包括hello_byehello_hello等。任何以hello_

开头的内容

这是我到目前为止所做的:

jQuery(document).ready(function(){
    jQuery("#metakeyselect > option").hide();
    jQuery("#metakeyselect > option[//what goes here?//]").show();
});

如何显示包含hello _?

等值的所有选项

3 个答案:

答案 0 :(得分:4)

您可以使用attribute-starts-with selector“隐藏”其值以hello_开头的内容。

正如Alex指出的那样,并非所有浏览器都允许您隐藏选项元素(另请参阅How to hide optgroup/option elements?)。但你可以删除它们:

var hidden_options = jQuery("#metakeyselect > option[value^=hello_]").remove();

或禁用它们:

jQuery("#metakeyselect > option[value^=hello_]").prop('disabled', true);

取决于你想用它们做什么。

答案 1 :(得分:3)

http://api.jquery.com/contains-selector/

包含hello_ 的元素:

$("#metakeyselect > option:contains('hello_')")

不包含hello_ 的元素:

$("#metakeyselect > option:not(:contains('hello_'))")

答案 2 :(得分:0)

您可以使用:

$(document).ready(function(){
    var options = $('#metakeyselect > option');
    var contains = "hello_";

    options.each(function() {
        if($(this).val().indexOf(contains) != -1){
            $(this).remove();
        }
    });
});

OR

$(document).ready(function(){
    $("#metakeyselect > option").remove();
    $("#metakeyselect > option[value*='hello_']").show();
});

您需要使用remove()作为选项。