从HTML中删除重复选项

时间:2014-04-07 07:13:13

标签: javascript jquery html css

这是一个奇怪的,但我们的开发人员离开了,明天我的客户正在进行网站演示 在网页上,一个下拉列表具有以下值。有没有办法使用script / css我们的设计师可以隐藏复制的值并只显示1-9一次?非常感谢。

<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>

4 个答案:

答案 0 :(得分:5)

试试这个:

var usedNames = {};
$("select > option").each(function () {
  if(usedNames[this.text]) {
     $(this).remove();
 } else {
     usedNames[this.text] = this.value;
 }});

<强> Working Demo

答案 1 :(得分:0)

您可以使用 :gt() 选择器:

$('select option:gt(8)').hide();

答案 2 :(得分:0)

你可以使用jQuery删除dups,如下所示:

var found = [];
$("select option").each(function() {
  if($.inArray(this.value, found) != -1) $(this).remove();
  found.push(this.value);
});

保留一系列已找到的值,如果在数组中找不到值,则添加.push(),如果找到,则将其添加为.remove()

答案 3 :(得分:-1)

试试这个......

$('select option').each(function(i)){
    if(i >= 9)
    $(this).remove();
});