使用纯 JavaScript 克隆字段集并更改 ID?

发布于 2024-11-29 19:42:42 字数 154 浏览 0 评论 0原文

我知道如何使用纯 JavaScript 克隆对象并增加数字,但是我想知道最好的方法是替换 ID 和其他属性(例如标签元素的“for”),这样当克隆的字段集附加到表单时它们就不会重复。

有人能给我一个简单的例子来说明如何使用普通的 ole' JavaScript 来做到这一点吗?

I know how to clone objects using plain JavaScript and increment the number, however I was wondering what the best approach is to replacing IDs and other attributes like "for" for label elements so they are not duplicated when the cloned fieldsets are appended to the form.

Can someone give me a quick example of how to do this using plain ole' JavaScript?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

暗地喜欢 2024-12-06 19:42:42

像平常一样克隆节点,并在将它们插入文档之前对其进行变异。存在具有相同 ID 的两个 Element 节点并不重要,只要它们不是同时插入到文档的 childNodes 树中即可。

var copy= document.cloneNode(element);
n++;
copy.getElementsByTagName('label')[0].htmlFor= 'thing'+n;
copy.getElementsByTagName('input')[0].id= 'thing'+n;
element.parentNode.appendChild(copy);

Clone the nodes as normal, and mutate them before inserting them into the document. It doesn't matter if two Element nodes exist with the same ID, as long as they aren't both inserted into the document's childNodes tree at the same time.

var copy= document.cloneNode(element);
n++;
copy.getElementsByTagName('label')[0].htmlFor= 'thing'+n;
copy.getElementsByTagName('input')[0].id= 'thing'+n;
element.parentNode.appendChild(copy);
π浅易 2024-12-06 19:42:42

你可以写你的“标签”而不用“for”,如下所示:

<p><label>Text 1 : <input type="text" name="text[]" /></label></p>
<p><label>Text 2 : <input type="text" name="text[]" /></label></p>
<p><label>Text 3 : <input type="text" name="text[]" /></label></p>

You can write your "label" without "for" like this :

<p><label>Text 1 : <input type="text" name="text[]" /></label></p>
<p><label>Text 2 : <input type="text" name="text[]" /></label></p>
<p><label>Text 3 : <input type="text" name="text[]" /></label></p>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文