【发布时间】:2017-07-17 15:35:12
【问题描述】:
我想在我的应用程序中创建一个文件上传功能。通常我的表单包含 1 个文件字段。但我想让用户在需要时拥有更多。所以我以这种方式创建了它:
HTML
<div class="att" id="c1">
<input type="file" name="c1" size="200" /><br>
<input type="button" value="Add more files" id="more" />
</div>
jQuery
$('#more').on('click',function(){
q = $('.att').length;
c = $('#c1').html();
n = q + 1;
f = c.replace('c1','c'+n);
$('#c'+q).after('<div>'+f+'</div>');
})
你可以看到我的代码现场演示here。
到目前为止,一切正常。但是我遇到的问题是访问新的 JavaScript 构建元素来命名它们。我需要具有名称如 c1、c2、c3 的文件字段......但所有新创建的元素都将它们的名称命名为“c2”。看来我的代码在计算“.att”元素的长度时存在一些问题,因为其中只有一个是 HTML 原生元素,而其他的则是用 JavaScript 构建的。
你有什么想法吗?
【问题讨论】:
-
$('.att').length将始终为 1.. 你没有附加<div class="att" id="c1">元素.. -
委托事件处理是你所需要的,我认为
-
@JaromandaX 委托需要做什么?
-
也许没什么,我看错了问题的标题
-
@Ouroborus,在页面中查找 "id="c1""..
标签: javascript jquery html dom element