删除选择列表中除第三个以外的所有选项

时间:2013-04-09 22:26:18

标签: jquery

标题说明了一切。

HTML:

<li class="mfieldtype_mnumber" id="modFilterField_29">
<label>From:</label>
<span class="filterinput">
<select size="1" class="inputbox text_area" name="cf29_2">
<option value=""></option>
<option value="1">COM_MTREE_EXACTLY</option>
<option value="2">COM_MTREE_MORE_THAN</option>
<option value="3">COM_MTREE_LESS_THAN</option>
</select>
<input type="text" placeholder="" size="30" class="inputbox text_area" name="cf29"></span></li>

我尝试使用以下代码并实现:not(nth-child)但我无法让它工作。

$('li#modFilterField_29 select')
    .find('option')
    .remove();

总而言之,除了第三个(而不是通过使用其值)

之外,除去所有选项

帮助?

2 个答案:

答案 0 :(得分:1)

您可以使用这些组合的Sizzle选择器:

$('#modFilterField_29 option:not(:nth-child(3))').remove();

Fiddle

答案 1 :(得分:0)

你可以这样做:

var options = $('#modFilterField_29 select').find("option");
var keepOption = options.eq(2);
options.not(keepOption).remove();
  1. 这可以获得所有选项。
  2. 然后,隔离第二个。
  3. 然后从所有选项列表中删除第二个并删除其余选项。
  4. 工作演示:http://jsfiddle.net/jfriend00/JAxQu/

    或者,如果你想要更少的线,你可以这样做:

    var options = $('#modFilterField_29 select').find("option");
    options.not(options.eq(2)).remove();