0

次のコードで

<div id="family">
  <input type="text" id="test_0_0"/>
 <input type="text" id="hello_0_0"/>

</div>
 <div id="family1">

  </div>

Jquery と regex を使用して、family1 内の同じ html を family div からコピーしたいのですが、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);
}
4

2 に答える 2

1

試す

function renumber(){
    var content=$('#family').html();
    var pattern = new RegExp("(\\w)_0", "g");
    var final=content.replace(pattern,"$1_1");
    $('#family1').html(final);
}

http://jsfiddle.net/5njU2/

于 2012-12-16T23:30:35.663 に答える
0

各要素data-に属性を追加することで、これを正規表現をまったく必要としないように単純化することができます。familyすべてのインクリメントを管理するために次のようなことを行うことができるため、間違いの可能性が高いクラスを使用していません。

<div class="family" data-familyID="0">
  <input type="text" class="test"/>
   <input type="text" class="hello"/>
</div>

JSは、既存の要素から新しい「家族」要素を作成します

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);

入力の変更を処理し、入力の現在のファミリIDを取得するJSfamily

/* 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);
})
于 2012-12-16T23:52:02.903 に答える