获取JS创建元素的ID /名称

时间:2017-02-23 15:07:54

标签: javascript jquery clone

我正在使用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。它似乎永远是同一个名字。

非常感谢您的帮助。

2 个答案:

答案 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.idimgButton所以正则表达式与它不匹配,因为它期望它以数字结尾。

最简单的解决方案是在第一个按钮ID的末尾添加0,从而使其成为imgButton0。您的代码将从此开始运行。

https://jsfiddle.net/xfuv79b3/76/

更新了演示