jquery - Select2 附加和删除选项组和选项
问题描述
我正在尝试创建一个带有选项组和选项的动态 select2 下拉列表。选项组中需要有动态数量的选项。
我遇到的问题是如何删除一个选项组及其所有选项,重新附加具有相同标签和 ID 的相同选项组,但现在在 jquery 中使用不同的选项。
This is the function i call on every change, when the option group's options are supposed to get changed:
function EmptyDropDowns() {
$("[id$=ddlOfficeAccount] optgroup").remove();
$("[id$=ddlOfficeAccount]").append('<optgroup id="Offices" label="Offices"></optgroup>');
$("[id$=Offices]").append($("<option></option>").text("- All Offices -").val("0"));
}
然后,用其他选项填充组选项:
if (Offices.length > 0) {
for (var i in result.Offices) {
$("[id$=Offices]").append($("<option></option>").text(result.Offices[i]).val(result.Offices[i]));
}
}
这只适用于第一次,创建一个带有选项组办公室的 Select2 下拉列表,并相应地在其中创建 X 个办公室。但是当需要重新加载时,这段代码:
$("[id$=ddlOfficeAccount] optgroup").remove();
$("[id$=ddlOfficeAccount]").append('<optgroup id="Offices" label="Offices"></optgroup>');
重新附加相同的选项组,即使它实际上不再存在于 DOM 中。
无论如何 $("[id$=Offices]") 可以在重新附加之前清除吗?我需要它是相同的元素(相同的 id),因为我稍后将 group 选项检查为所选选项的父级。
解决方案
您必须明确销毁 select2 元素,然后重新注册它。$('#mySelect2').select2('destroy');
推荐阅读
- c# - 发布到另一个 API 时更改值
- elixir - Phoenix - 在 POST 响应中发送字节
- identityserver4 - GetUserInfoAsync 仅返回 sub 而没有其他声明
- java - 每次加载实体时应用休眠过滤器
- python - 为什么鹡鸰只显示孩子的头衔?
- python - 采用openjdk/Java8在MacOs上安装Pylucene
- python - 使用 docker 时无法使用 pipenv 安装软件包
- macos - 在 MacOS 中安装 gcutil 时收到错误
- spring-boot - Spring data jpa,外部化原生查询
- python - 解释 python kde 绘图 y 轴