jquery正在复制html选择选项,但名称不同

jquery正在复制html选择选项,但名称不同,jquery,Jquery,我有一个html下拉列表: <select name="name1"> <option value="1">John</option> <option value="2">Doe</option> <option value="3">Foo</option> <option value="4">Bar</option> </select> 约翰 雌鹿 福 酒吧 是否有一个

我有一个html下拉列表:

<select name="name1">
<option value="1">John</option>
<option value="2">Doe</option>
<option value="3">Foo</option>
<option value="4">Bar</option>
</select>

约翰
雌鹿
福
酒吧
是否有一个jQuery函数可以生成相同的选项,但下拉名称不同,如:

<select name="name2">
<option value="1">John</option>
<option value="2">Doe</option>
<option value="3">Foo</option>
<option value="4">Bar</option>
</select>

约翰
雌鹿
福
酒吧

尝试克隆并更改名称

var $newSelect = $('select[name=name1]').clone().attr('name', 'name2');
append/prepend
将$newSelect添加到文档中的任意位置:)

正如建议的那样,您可以使用下面的方法动态生成名称

var $newSelect = $('select[name=name1]')
                    .clone()
                    .attr('name', function(i,n) { 
                         var int = 
                                parseInt(n.match(/\d*/),10); 
                         return n.replace(/\d*/, int + 1); 
                     });

尝试克隆并更改名称

var $newSelect = $('select[name=name1]').clone().attr('name', 'name2');
append/prepend
将$newSelect添加到文档中的任意位置:)

正如建议的那样,您可以使用下面的方法动态生成名称

var $newSelect = $('select[name=name1]')
                    .clone()
                    .attr('name', function(i,n) { 
                         var int = 
                                parseInt(n.match(/\d*/),10); 
                         return n.replace(/\d*/, int + 1); 
                     });
$('').clone().attr(“名称”、“新名称”) $('').clone().attr(“名称”、“新名称”)
假设
$place
是要附加新组合框的位置

$select = $('select').clone();

$place.append($select.attr('name', 'name2'));

参考:


假设
$place
是要附加新组合框的位置

$select = $('select').clone();

$place.append($select.attr('name', 'name2'));

参考:


别忘了:也许这只在这个例子中是正确的,但是,考虑到这个例子,我建议:
.attr('name',function(I,n){var int=parseInt(n.match(/\d*/),10);返回n.replace(/\d*/,int+1);}
(这是未经测试的,但应该“动态”递增数字,而不是在替换字符串中对其进行硬编码)。别忘了:也许这仅在本例中是正确的,但是,考虑到该示例,我建议:
.attr('name',function(I,n){var int=parseInt(n.match(/\d*/),10);返回n.replace(/\d*/,int+1);})(未测试,但应“动态”增加数字,而不是在替换字符串中硬编码)。