我正在使用clone命令动态创建新的HTML元素。代码创建一个包含其所有子节点的新父节点,并且每个子节点都获得一个新名称和id(当前名称/ id +1)。这样做很好,因为当我发布表单时,我会看到新的,正确的名称。
在此范围内,我使用图像重定向input = file中的单击,以便自定义input = file按钮。但是,目前,点击任何图像都会调用相同的原始文件=上传。
我需要知道file = upload的id / name - 无论是原始的还是克隆的,但我似乎只获取原始名称,即使单击了克隆。
这是一个小提琴: https://jsfiddle.net/msith718/xfuv79b3/71/
$(document).on('click', '.uploadBtn', function(){
alert( this.id );
});
单击+以创建新克隆,然后单击图像以尝试获取单击哪个克隆的名称/ ID。它似乎永远是同一个名字。
非常感谢您的帮助。
答案 0 :(得分:2)
如果您希望父母的ID更改,只需将此警报替换为此警告。
alert( $(this).closest('.fingers').attr('id') );
答案 1 :(得分:2)
这是因为你的id创建代码是错误的。
你做
var regex = /^(.+?)(\d+)$/i;
var id = this.id || "";
var match = id.match(regex) || [];
if (match.length == 3) {
//snipped code
}
if
中的代码永远不会为按钮执行,因为this.id
是imgButton
所以正则表达式与它不匹配,因为它期望它以数字结尾。
最简单的解决方案是在第一个按钮ID的末尾添加0,从而使其成为imgButton0
。您的代码将从此开始运行。