使用以下代码
<div id="family">
<input type="text" id="test_0_0"/>
<input type="text" id="hello_0_0"/>
</div>
<div id="family1">
</div>
使用Jquery和regex,我想从family div中复制family1中的相同html但是id为
<input type="text" id="test_1_0"/>
<input type="text" id="hello_1_0"/>
我试过这个但是不起作用
function renumber(){
var content=$('#family').html();
var pattern = new RegExp("_0","g");
var final=content.replace(pattern,"_1");
$('#family1').html(final);
}
答案 0 :(得分:1)
尝试
function renumber(){
var content=$('#family').html();
var pattern = new RegExp("(\\w)_0", "g");
var final=content.replace(pattern,"$1_1");
$('#family1').html(final);
}
答案 1 :(得分:0)
通过向每个data-
元素添加family
属性,您可以确保将其简化为不需要正则表达式。你没有使用任何可能是错误的类,因为你可以做这样的事情来管理所有的增量:
<div class="family" data-familyID="0">
<input type="text" class="test"/>
<input type="text" class="hello"/>
</div>
JS从现有的
创建一个新的“family”元素var lastFamily= $('.family').last()
var newFamily =lastFamily.clone();
var newFamilyID=newFamily.data('familyID')+1;
/* update familyID and reset inputs*/
newFamily.data('familyID', newFamilyID).find('input').val('').insertafter(lastFamily);
JS处理输入的更改并获取输入family
的当前系列ID
/* delegate to body to account for dynamicly added elements*/
$('body').on('change', '.family input', function(){
var val=$(this).val(), className=$(this).attr('class'), familyID=$(this).closest('.family').data('familyID');
alert( className +' #'+familyID+' value='+val);
})