我想使用 JQuery 克隆 HTML 中的 <select> 输入框。
我不确定如何去做,所以想在这里问问。
特别是对于最好的将其写回文档中的方法很感兴趣。
我的选择元素看起来像这样:
<select id="options">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
</select>
谢谢。
我想使用 JQuery 克隆 HTML 中的 <select> 输入框。
我不确定如何去做,所以想在这里问问。
特别是对于最好的将其写回文档中的方法很感兴趣。
我的选择元素看起来像这样:
<select id="options">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
</select>
谢谢。
参见: http://api.jquery.com/clone/
$('select#options').clone().attr('id', 'newOptions').appendTo('.blah');
appendTo(...)只是插入克隆元素的一种方法。其他方法可以在此处找到:http://api.jquery.com/category/manipulation/
这个怎么样?
<select id="options">
<option value="1">Opt 1</option>
<option value="2">Opt 2</option>
<option value="3">Opt 3</option>
</select>
//目标
<select id="options2">
</select>
$('#options').find('option').clone().appendTo('#options2');
谢谢。仅接受答案的问题在于,如果您的选择包含 optgroups,它们将不会被复制。在这种情况下,我发现最简单的方法是只需执行以下操作:
$('#options2').html($('#options').html());
你可以在选择改变时使用attr选项selected true,然后使用clone就可以了。
$("#options").off("change").on("change", function() {
var val = $(this).val();
$(this).find("option[value=" + val + "]").attr("selected", true);
});
$("#options").off("change").on("change", function() {
var val = $(this).val();
$(this).find("option[value=" + val + "]").attr("selected", true);
});