Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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 jquery selectbox删除除两个(选择器变量名称)之外的所有选项_Javascript_Jquery - Fatal编程技术网

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

Javascript jquery selectbox删除除两个(选择器变量名称)之外的所有选项,javascript,jquery,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> <opt

我有下面的选择框

<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>
这部分很好用。我遇到的问题是,作为这段代码的一部分,我调用了一个函数,该函数可以刷新更改的选择框中的数据。因此,我使用jqueryremove函数刷新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
}
问题是,这删除了“添加新”选项,但保留了“请选择”,但数据库中的“我的选项”添加得很好


任何关于如何修复此问题的想法…

您的选择器将在option元素中查找具有新值的
子体
。请尝试

sel.find('option[value!="NEW"][value!="PLS"]').remove();

您只需使用
:gt
选择器即可

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

一些错误(代码>})
myfunction
-
my_function
Shaunak,我没有复制和粘贴我的确切代码,只是在键入它背后的想法。但感谢您指出。
gt()
总是需要索引
op
正试图通过
value
删除
元素
@Girish:您可以清楚地看到,只需使用修改选择器即可完成任务。那么,有什么必要让它复杂化呢?好吧,但如果他想删除2个值
value=“6”
value=“1”
,而他又没有值索引,那么函数将
gt()
起作用吗?@Girish:别当妈妈。他不想这样。当时我没有提供简化的解决方案。我在第一次调用时成功地使用了:gt选择器,但对例程进行了额外调用(即,我选择了另一个选项,导致它删除了我想要保留的选项。猜测是因为我将数据附加到selectbox。这会在我的ajax重新添加公司之前删除所有值。在我的HTML代码中发现错误后,此解决方案确实有效。非常感谢。我还为JSFIDLE添加了日期:感谢Rajarabhu Aravinda山姆,这对我很有帮助。我只是想说声谢谢!我不知道这会怎么做,这真的救了我!:)
sel.find('option:gt(1)').remove();