我已经尝试了所有我知道的删除其中一些选项值
这里是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();
任何建议?
答案 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();