如何隐藏选项值

时间:2014-08-12 21:56:55

标签: jquery

我已经尝试了所有我知道的删除其中一些选项值

这里是html - 我想删除每个具有MESSAGE值的选项

<select id="source_list" name="HOME_MODULES_AVAILABLE" size="16">
 <option value="TWITTER_FEED=N"></option>
 <option value="MFLTIP=N"></option>
 <option value="WHO_SHOULD_I_START=N"></option>
 <option value="LEAGUE_MAP=W"></option>
 <option value="MESSAGE=W"></option>
 <option value="MESSAGE2=W"></option>
 <option value="MESSAGE3=W"></option>
 <option value="MESSAGE4=W"></option>

我已经尝试了所有这些但没有运气

$('#source_list:contains("MESSAGE")').hide();
$("option:contains('MESSAGE')").hide();
$("#source_list option[value="MESSAGE"]").hide();
$("select > option[value*='MESSAGE']").remove();
$("select > option[value$='MESSAGE']").remove();
$("#source_list > option[value*='MESSAGE']").remove();

任何建议?

4 个答案:

答案 0 :(得分:0)

试试这个:

$('#source_list option').each(function(i, e) {
    if($(e).attr('value').match(/^MESSAGE/)) $(e).remove();
});

迭代每个选项节点并使用正则表达式检查值是否以“MESSAGE”开头。

由于更好​​的跨浏览器支持,删除选项而不是尝试隐藏它们会更好。

答案 1 :(得分:0)

有两种方法可以做到这一点

1)以选择器^ 开头 - 它会检查以MESSAGE开头的所有选项值。

$("#source_list > option[value^='MESSAGE']").remove();

<强> DEMO

2)包含选择器* - 它会检查包含单词MESSAGE的所有选项值。

$("#source_list > option[value*='MESSAGE']").remove();

<强> DEMO

答案 2 :(得分:-1)

尝试使用CSS:

option[value="MESSAGE"] {
    display:none;
}

如果您希望它可以切换,请将以下类添加到您希望能够隐藏和显示的选项标记中。

.hidden {
    display:none;
}

然后通过jQuery使用.addClass和.removeClass。

答案 3 :(得分:-2)

$("#selectboxid option[value='1']").remove();