如何从第一个选项中获取动态选择创建的选项的所有选项, 我尝试使用jquery但没有工作:
for( j = 0; j < i; j++)
$('#s1 option').clone().appendTo(IS+j);
HTML文件:
<input type="button" value="Add" id="btn1" OnClick="f('dv1');">
<div id="dv1">
<select id="s1" name="select1">
<option>
1
</option>
<option>
2
</option>
</select>
</div>
<script type="text/javascript" src="js/functions.js"></script>
的 functions.js 的
var i = 1;
function f(x){
var y = document.createElement('div');
y.innerHTML = '<br><Select id="IS"'+i+ 'name="NAME"'+i+' > </Select>';
document.getElementById(x).appendChild(y);
i++;
}
答案 0 :(得分:1)
由于您似乎正在创建多个选择对象,因此需要修复jquery选择器以及为选择生成的id。首先,$('#s1 option').clone().appendTo(IS+j);
应改为:
$('#s1 option').clone().appendTo('#IS' + j);
其次,y.innerHTML = '<br><Select id="IS"'+i+ 'name="NAME"'+i+' > </Select>';
应改为:
y.innerHTML = '<br /><select id="IS'+i+ '" name="NAME'+i+'"></select>';
修改:
如果您只是尝试克隆原始下拉列表,则以下内容适用于您:
function f(x){
// Create new select within its own div
var y = document.createElement('div');
y.innerHTML = '<br /><select id="IS'+i+ '" name="NAME'+i+'"></select>';
document.getElementById(x).appendChild(y);
// Fill new select with the options from the original
$('#IS' + i).html($('#s1').html());
i++;
}
答案 1 :(得分:0)
如果您因任何原因需要迭代选项而可能需要进行更改
,这是另一种方法var newSelect = $("<select />");
$.each(primarySelect.options, function (i, opt)
{
$(newSelect).append($('<option></option>', {
value: opt.value, text: opt.text, selected: opt.selected }));
});
请确保不要使用$(primarySelect.options).each(...)
,因为这在IE中无效。
另请参阅:What is the best way to add options to a select from an array with jQuery?