除了第一个以外,如何从下拉列表中删除所有条目

时间:2016-01-12 13:14:44

标签: jquery

我的下拉html说看起来像这样

<select id="models" ">
    <option id = "remove" value="">--Select--</option>
    <option id = "remove" value="0">R8</option>
    <option id = "remove" value="1">Quattro</option>
    <option id = "remove" value="2">A6 hatchback</option>
</select>

我知道如何从下拉列表中删除所有条目,并按照以下代码再次添加新数据。

$.getJSON('@Url.Action("YourUrl")',function(data){

     var dropdown=$('#models');
    dropdown.empty();  
    $.each(data, function (index, item) {
        dropdown.append(
            $('<option>', {
                value: item.valueField,
                text: item.DisplayField
            }, '</option>'))
          }
         )});

但我想知道在从下拉菜单中删除所有其他项目时如何保留此行<option id = "remove" value="">--Select--</option>

感谢

3 个答案:

答案 0 :(得分:7)

首先,不要复制id值(这会导致JavaScript混淆),但您可以使用class es。其次,你可以使用:

$("option:not(:first)").remove();

另请注意,您没有正确关闭代码:

<select id="models" ">
<!------------------^ remove this

<强>段

$(function () {
  $("#models").find("option:not(:first)").remove();
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="models">
  <option value="">--Select--</option>
  <option value="0">R8</option>
  <option value="1">Quattro</option>
  <option value="2">A6 hatchback</option>
</select>

答案 1 :(得分:3)

您可以使用选择器过滤掉空字符串值的项目:

$("#models option:not([value=''])").remove();

这确保无论您的空值选项位于哪个索引,都将删除所有其他选项。

答案 2 :(得分:1)

尝试将:gt()选择器与参数0一起使用,将className "remove"替换为id"remove" option$("#models option:gt(0)").remove()元素

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<select id="models">
            <option class="remove" value="">--Select--</option>
            <option class="remove" value="0">R8</option>
            <option class="remove" value="1">Quattro</option>
            <option class="remove" value="2">A6 hatchback</option>
</select>
&#13;
import-csv C:\MyFolde\myfile.csv | Measure-Object
&#13;
&#13;
&#13;