jquery selectbox删除除两个以外的所有选项(选择器变量名称)

时间:2014-06-27 06:34:20

标签: javascript jquery

我有以下选择框

<select name="loc_id_1" id="loc_id_1">
<option value="PLS" selected="selected">-- PLEASE SELECT --</option>
<option value="NEW">-- ADD NEW --</option>
<option value="1">Smith Company</option>
<option value="6">Jones Company</option>
<option value="23">Wright Company</option>
</select>

在页面loc_id_2,loc_id_3等上有多个这些都具有不同的信息。我使用以下内容来检测其中任何一个的更改。

$("[id^=loc_id_]").change(function(){
/// my magic code
var lc_id = $(this).attr('id');
my_function(lc_id,data1,data2);
});

这部分效果很好。我遇到的问题是作为此代码的一部分,我调用一个可以刷新更改的选择框中的数据的函数。所以我使用jquery remove函数来刷新selectbox

function my_function(id,d,f) {
var sel = $("#" + id);
sel.find('option[value!="NEW"] option[value!="PLS"]').remove();

// ajax code that calls database to append the other entries to the selectbox
}

问题是,这会删除“添加新”选项,但保留“请选择”,但我的数据库中的选项添加得很好。

任何想法如何解决这个问题......

2 个答案:

答案 0 :(得分:4)

您的选择器会在descendant NEW.Try,

的选项元素中查找value
sel.find('option[value!="NEW"][value!="PLS"]').remove();

DEMO

答案 1 :(得分:1)

您只需使用:gt选择器

即可
sel.find('option:gt(1)').remove();

<强> Working Demo