0

标题说明了一切。

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();

所以总而言之,摆脱除第三个之外的所有选项(而不是通过使用它的值)

帮助?

4

2 回答 2

1

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

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

小提琴

于 2013-04-09T22:39:05.797 回答
0

你可以这样做:

var options = $('#modFilterField_29 select').find("option");
var keepOption = options.eq(2);
options.not(keepOption).remove();
  1. 这将获得所有选项。
  2. 然后,隔离第二个。
  3. 然后从所有选项列表中删除第二个并删除其余选项。

工作演示:http: //jsfiddle.net/jfriend00/JAxQu/

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

var options = $('#modFilterField_29 select').find("option");
options.not(options.eq(2)).remove();
于 2013-04-09T22:34:20.947 回答