1

JQUERYクローン関数でhtmlをカスタマイズする方法はありますか?私はdivを持っているとしましょう

<div id="my_Div" style="margin-right:14px;"> Name :
                <input type="text" name="file_name[]" id="file_name" class="validate[required]"/>
                &nbsp;&nbsp; Choose File :
                <input type="file" name="upload_file[]" id="upload_file" class="validate[required]" onChange="getFileExtension('upload_file');"/> 
              </div> 

クローン機能による

$('#my_Div').clone().appendTo("body");

クローンhtmlはそのまま作れるけどカスタマイズしたい

<input type="text" name="file_name[]" id="file_name" class="validate[required]"/>

すなわち

<input type="text" name="file_name[]" id="file_name1" class="validate[required]"/>
<input type="text" name="file_name[]" id="file_name2" class="validate[required]"/>
<input type="text" name="file_name[]" id="file_name3" class="validate[required]"/>

助けて?

4

3 に答える 3

2

私があなたの質問を正しく理解できれば、返された複製コピーをカスタマイズしたいと思うでしょう。組み込みの方法はありませんが、変更したいロジックを関数に入れ、次のように呼び出すことができます。

clonedElement.attr('id', function () {
 // logic
});

詳細については、こちらを参照してください: jQuery to clone a table with new id, how to write below below code together.

于 2012-07-16T12:47:24.743 に答える
1
var i = 1;
var tmp = $('#my_Div').clone();
var inp = tmp.find('#file_name');
inp.attr('id', inp.attr('id')+i);
i++;
tmp.appendTo('body');



I would add class to all inputs, for example class="changeable" and add:    
$('.changeable').on('change', function() {
 //do something
});
于 2012-07-16T12:44:48.947 に答える
0

いいえ、特に html 文字列を操作することによってではなく、クローン関数と一緒に、またはクローン関数内でこれを行うべきではありません。次のようなことをしたほうがいいです:

var c = $('#my_Div').clone().appendTo('body');
var i = c.find("#file_name").attr('id', "file_name0");
for (var i=1; i<3; i++)
    i.clone().appendTo(c).attr('id', "file_name"+i);

ただし、同じタイプの複数の要素に (番号付きの) ID は必要ないと思います。わかりやすいクラス名で十分です。

于 2012-07-16T12:52:21.883 に答える