如何使用具有不同名称的 jquery 克隆生成 HTML
How to generate HTML with jquery clone with different names?
我有这样的HTML:
<div id='main'>
<div id='child-0'>
<input type='text' name='data[0][name]'>
<input type='text' name='data[0][dob]'>
<input type='text' name='data[0][location]'>
</div>
</div>
<input type='button' id='add' value='Add'>
j查询:
$("input#add").live( 'click', function(){
$("#main").append("<br />");
$("#child-0").clone(false).appendTo( $("#main") );
});
上面的代码正在工作,但它正在创建具有相同名称的元素。我想生成这样的东西:
<div id='main'>
<div id='child-0'>
<input type='text' name='data[0][name]'>
<input type='text' name='data[0][dob]'>
<input type='text' name='data[0][location]'>
</div>
<div id='child-1'>
<input type='text' name='data[1][name]'>
<input type='text' name='data[1][dob]'>
<input type='text' name='data[1][location]'>
</div>
</div>
什么是简单的解决方案。
谢谢
$("input#add").live( 'click', function(){
$("#main").append("<br />");
var cloned = $("#main div:last").clone(false).appendTo( $("#main") );
cloned.find('[name^=data]').attr('name', function() {
var index = this.name.match(/'[('d)']/);
if (index != null && index.length > 1) {
var newIndex = parseInt(index[1], 10) + 1;
return this.name.replace(/'[('d)']/, '[' + newIndex + ']');
}
return this.name;
});
});
相关文章:
- Jquery html() 和保留元素名称
- 函数jquery.html()不提供数据属性集值
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- 防止“;jQuery(html)"防止触发浏览器请求图像和其他参考内容
- 使用jquery.html()获取元素本身的html
- 在iframe的情况下,jQuery html()将失败
- 如何在使用jQuery.html()时防止javascript执行
- jquery.html有效,但是.add不行;t
- jQuery.html()方法语法
- jQuery.html()赢得't替换javascript图表
- 如何在Jquery html elemet属性中附加字符串变量
- 等效于 AngularJS 中的 jQuery html()
- jQuery .html('
') 在 FF 和 Opera 中不起作用
- jquery html()编写函数以包含语义html元素
- jQuery Html负载剥离<表单>标签
- 用jQuery.html更新span内部html在IE中不起作用
- jquery html更新可以在电脑上使用,但不能在智能手机上使用
- 使用jQuery.html设置带有提交按钮的表单
- 将jquery HTML方法中的数据检索到数组中
- 来自对象的jQuery.html()返回未定义