2

div、span、select、およびその他の要素の複数の ID、クラス、および名前を変更する必要があります。

次のように、テーブルにある最後の行からhtmlを複製します

var num     = $('.clonedLighting').length; // num of current rows
var newNum  = new Number(num + 1);      // the numeric ID of the new input field being added

// create the new element via clone(), and manipulate it's ID using newNum value
var newElem = $('#inputlighting' + num).clone().prop('id', 'inputlighting' + newNum);

次に、次のステップで、複製された ID を次のように変更します

newElem.children('td').children('label.prod_item').prop('for', 'appliancetextfield' + newNum);
newElem.children('td').children('select.prod_item').prop('id', 'appliancetextfield' + newNum).prop('name', 'appliancetextfield' + newNum).prop('value', '');

これは正常に動作しています。ただし、appliancetextfield セクションにはさらに多くの要素が含まれるようになりました。を含むすべての名前、クラス、および ID を置き換えたい

'appliancetextfield'+num

'appliancetextfield'+newNum

すべての要素に対してそれを行う代わりに。これは可能ですか?どうやって?

明確にするために:ID、クラス、または名前は次のようになります

appliancetextfield4
appliancetextfield4_title
appliancetextfield4_titleText
appliancetextfield4_msdd

に変わるはずです

appliancetextfield5
appliancetextfield5_title
appliancetextfield5_titleText
appliancetextfield5_msdd

この時点では、数字は 1 桁にしかならないように見えますが、10 日以上になる必要があるかもしれません。ご意見ありがとうございます。

編集:以下の提案と多くのグーグルを実装しようとしています:私は今持っています:

var num     = $('.clonedLighting').length; // current rows
var newNum  = new Number(num + 1); 

$('#inputlighting' + num).clone().prop('id', function(index, id) {
    return id.replace(/(appliance.*)\d\d?(.*)/g, "$1" + newNum + "$2");
}).insertAfter($('#inputlighting' + num));

正しいトラックのように見えますが、正規表現や後方参照が機能しません。

4

1 に答える 1