Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从HTML选择中删除重复选项_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 从HTML选择中删除重复选项

Javascript 从HTML选择中删除重复选项,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是一个奇怪的问题,但我们的开发人员不在,我的客户明天将有一个网站演示。 在网页上,一个下拉列表具有以下值。是否有一种使用脚本/css的方法,我们的设计师可以隐藏复制的值,只显示1-9次?非常感谢 <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4<

这是一个奇怪的问题,但我们的开发人员不在,我的客户明天将有一个网站演示。
在网页上,一个下拉列表具有以下值。是否有一种使用脚本/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>
1
2.
3.
4.
5.
6.
7.
8.
9
1.
2.
3.
4.
5.
6.
7.
8.
9
您可以使用选择器:

$('select option:gt(8)').hide();
您可以使用选择器:

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

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

试试这个:

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

您可以使用jQuery删除DUP,如下所示:

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

保留一个已找到值的数组,如果在数组中未找到值,则添加它
.push()
,如果找到,则它是一个DUP,
.remove()
它。

您可以使用jQuery删除DUP,如下所示:

var found = [];
$("select option").each(function() {
  if($.inArray(this.value, found) != -1) $(this).remove();
  found.push(this.value);
});
保留一个已找到值的数组,如果在数组中找不到值,请将其添加到
.push()
,如果找到,则它是一个副本,
.remove()
将其删除。

尝试此

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

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

如何将其应用于页面上的这个特定下拉列表您可以给
选择
一个
id
,然后使用
#
按id以元素为目标,如:
$('#selectId option:gt(8)')。hide()我认为它目前正在工作,但它的顺序相反,它不会工作,因为它
8
不是一个实际值。选择匹配集内索引大于索引的所有元素我如何将其应用于页面上的此特定下拉列表您可以给
选择
一个
id
,然后使用
按id以元素为目标,如:
$(“#selectId option:gt(8)”).hide()我认为它目前正在工作,但它的顺序相反,它不会工作,因为它
8
不是一个实际值。选择匹配集合中索引大于索引的所有元素。这可能有助于禁用“选择元素”中的重复选项。请尝试此
http://jsfiddle.net/Eg2Np/
这可能有助于禁用select元素中的重复选项。请尝试此
http://jsfiddle.net/Eg2Np/
@down\u投票人,请发表评论。这是一个有效的解决方案。@down\u投票人,请发表评论。这是一个有效的解决办法。