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