我需要在某些情况下从选择中删除选项。
基本上:
if(mystatement == true)
{
//remove item with id 'option1' from select of id 'select1'
}
任何人都知道我的代码来实现这个目标吗?
非常感谢。
答案 0 :(得分:14)
按值删除:
$("#select1 option[value=1]").remove();
按文字删除:
$("#select1 option:contains(Text)").remove();
答案 1 :(得分:8)
<强> 修改 强>
由于id在文档中是唯一的,因此无需将其与父选择元素相关联。你可以做到
$("#option1").remove();
答案 2 :(得分:3)
jQuery的:
$("#option1").remove();
或
$("#select").remove("#option1");
经典的javascript方法:
var option1 = document.getElementById("option1");
document.getElementById("select1").removeChild(option1);
答案 3 :(得分:0)
我见过很多人都有这个问题。我创建了这个可能有用的脚本。希望你喜欢它:
has_many :videos
&#13;
var robable = {
init: function() {
robable.get_selected_option_from_select();
},
get_selected_option_from_select: function() {
$(".robable").off().on("change", function() {
if ($(this).val() !== "") {
robable.add_to_list($(this));
}
});
},
remove_option_from_select: function(select_id, value) {
$("#" + select_id + " option[value='" + value + "']").remove();
},
add_option_to_select: function(select_id, value, text) {
$('#' + select_id).append('<option value="' + value + '">' + text + '</option>');
},
add_to_list: function(select) {
option_text = $(".robable option[value='" + select.val() + "']").text();
//Add to list
$('#list').append("<li data-value='" + select.val() + "' data-text='" + option_text + "'><a href='#' class='filter-remove' data-parent-id='" + select.attr("id") + "'>Delete</a> " + option_text + "</li>");
robable.remove_from_list();
//Remove from select
robable.remove_option_from_select(select.attr("id"), select.val());
},
remove_from_list: function() {
$(".filter-remove").off().on("click", function() {
var select_id = $(this).data('parent-id');
var option_value = $(this).closest("li").data('value');
var option_text = $(this).closest("li").data('text');
//Add to select
robable.add_option_to_select(select_id, option_value, option_text);
//Remove from list
$(this).closest("li").remove();
});
}
};
robable.init();
&#13;