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]"/>

IE

<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 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 回答