所以我希望能够隐藏所有选项,然后只显示其值中不包含hello_
的选项。这包括hello_bye
,hello_hello
等。任何以hello_
这是我到目前为止所做的:
jQuery(document).ready(function(){
jQuery("#metakeyselect > option").hide();
jQuery("#metakeyselect > option[//what goes here?//]").show();
});
如何显示包含hello _?
等值的所有选项答案 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()作为选项。