gpt4 book ai didi

jquery - 如何在克隆字段集 jQuery 中克隆字段集

转载 作者:可可西里 更新时间:2023-11-01 13:37:32 24 4
gpt4 key购买 nike

我需要在克隆的字段集中克隆一个字段集。 enter image description here

所以我的常规结构是这样的

enter image description here

当我点击 add new agenda field 时,它成功克隆了更大的字段,例如

enter image description here

但是当我点击添加新文件时,它只会将新字段添加到父字段而不是当前字段

enter image description here

我的代码是这样的

<div id="agenda_placeholder">
<div id="agenda_template">
<fieldset>
<legend>Agenda Details</legend>

<ol>
<li>
<label for=topic_name>Topic Name</label>
<input id=topic_name name=topic_name type=text placeholder="ACAT Briefing" required autofocus>
</li>
<li>
<label for=topic_time>Time</label>
<input id=topic_time name=topic_time type=text placeholder="2.00 - 2.30 ">
</li>
<li>
<label for=presenter>Presenter</label>
<input id=presenter name=presenter type=text placeholder="Name LastName">
</li>


<li>
<div id="file_placeholder">
<div id="file_template">
<fieldset>
<legend>File Details</legend>

<ol>
<li>
<label for=file_description>File Description</label>
<input id=file_description name=file_description type=file_description placeholder="Ex. Weather Stats">
</li>
<li>
<label for=file_name>File Name</label>
<input id=file_name name=file_name type=file_name placeholder="Exact file name Eg:weather.docx">
</li>
</ol>
</div> <!-- file_template -->
</div> <!-- file_placeholder -->
<button type="button" name="AddNewFile" onclick="Add();">Add New File</button>
</fieldset>
</li>
</ol>
</div> <!-- agenda_template -->
</div> <!-- agenda_placeholder -->
<button type="button" name="AddNewAgenda" onclick="Add_Agenda();">Add New Agenda Field</button>
</fieldset>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
var _counter = 0;
function Add() {
_counter++;
var oClone = document.getElementById("file_template").cloneNode(true);


oClone.id += (_counter + "");
document.getElementById("file_placeholder").appendChild(oClone);
}

function Add_Agenda() {
_counter++;
var oClone = document.getElementById("agenda_template").cloneNode(true);
oClone.id += (_counter + "");
document.getElementById("agenda_placeholder").appendChild(oClone);
}

那么如何在克隆的字段集中克隆字段集呢?

最佳答案

首先,您的 html 无效,它有重叠的标签

在您的添加 函数中声明 document.getElementById("file_placeholder")将返回 id file_placeholder 的第一个匹配项,这是不正确的。

你需要的是知道点击了哪个按钮并克隆它的父 div并将克隆的 div 附加到按钮的祖父 div。

同样的逻辑可以应用到 Add_agenda 但你应该注意删除添加的文件到您正在克隆的议程。

function Add(btn) {
_counter++;
var parentFileTemplate = $(btn).parent("div");
parentFileTemplate.attr('id',"file_template" + _counter );
var parentFilePlaceHolder = parentFileTemplate.parent();
cloned = parentFileTemplate.clone();
cloned.attr('id',"file_template" + _counter );
parentFilePlaceHolder.append(cloned);
}

调用函数时还必须添加this作为参数:

<button type="button" name="AddNewFile" onclick="Add();">

将是:

<button type="button" name="AddNewFile" onclick="Add(this);">

关于jquery - 如何在克隆字段集 jQuery 中克隆字段集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12961135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com