我有一个按钮,每次用户点击它时都会在页面上克隆一个元素。它正在复制一个选择列表,供他们选择另一个选项。
然而,它克隆了整个元素,包括所选的选项,所以附加的所有新元素都有一个我不想要的默认值。
globalLocales = $("<div />").append($('[name=localeID]:first').clone()).html();
$('select').select2();
我有没有办法在克隆过程中删除所选的选项,以便它不会转移到新元素?
我尝试在附加内容中使用.removeProp('selected')
以及.prop('selected',false);
,但这对我不起作用
答案 0 :(得分:4)
解决问题的一种方法是选择一个不存在的值:
$("<div />").append($('[name=localeID]:first').clone().val(-1)).html();
或者您可以找到所选的选项并删除selected
属性:
$("<div />").append($('[name=localeID]:first').clone()
.find(':selected').removeAttr('selected').end()).html();
但这有点笨拙。
答案 1 :(得分:2)
您可以使用此代码删除所选属性。
$('[name=localeID] option:selected').removeAttr('selected');