如何使用Javascript按文本删除optgroup中的选项

时间:2014-05-08 04:01:37

标签: javascript blogger

所以我想做两件事。我有一个带有2个选项组的选择框,由服务器填充选项(我正在使用博客)。在第一个选项组中,只应填充Genre's,第二个选项组应仅填充艺术家。我已经通过博客修改了代码,以使用相同的选项填充两个选项组。

<select id='e1' onchange='location=this.options[this.selectedIndex].value;' 
style='width:100%'>
<optgroup label='Genres' id="select-genre">
<b:loop values='data:labels' var='label'>
<option expr:value='data:label.url'><data:label.name/> 
</option> 
  </b:loop> 
  </optgroup>
<optgroup label='Artists' id="select-artist"> 
<b:loop values='data:labels' var='label'>
<option expr:value='data:label.url'><data:label.name/> 
</option> 
  </b:loop> 
  </optgroup>
</select> 

我想要做的是使用javascript删除除了Genres组中的一组精选类型之外的所有类型,并保留Artists组中除精选类型之外的所有类型。基本上,我希望只有类型出现在第一组中,只有艺术家出现在第二组中。要删除第一个选项组中除了类型之外的所有内容,它可能必须看起来像这样

$(document).ready(function(){
//Removes all labels except the selected ones
var labels = document.querySelectorAll("#select-genre option");
  var listOfGenres = ["Singer/Songwriter","Pop Latino","Metal","Holiday","Electronic","Alternative","Pop","Dance","Hip-Hop/Rap","Hip Hop/Rap","R&B/Soul","Reggae","Soundtrack","Rock","World","Country"];
// and then remove everything but the listOfGenres (I don't know how to do this part I'm not good with javascript)

要在艺术家组中显示除选择的流派组以外的所有内容,则需要删除包含所选流派类型的所有内容。

我在这里制作了一个jsfiddle http://jsfiddle.net/t863H/

如果有人可以帮我解决这个问题我对javascript不太满意:(

0 个答案:

没有答案