javascript - 如何通过单击按钮添加一组html元素
问题描述
我需要设计一个通过单击添加一组 html 元素的按钮。要添加的部分在<section>
. 简化结构如下:
<body>
<section class="pb-5" id="entrySection_1">
<div class="container card">
<div class="row" style="padding-top: 10px;">
<div class="col-4">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">WO Number</span>
</div>
<input type="text" class="form-control">
</div>
</div>
<div class="col-8">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">Status</span>
</div>
<input type="text" class="form-control">
</div>
</div>
</div>
</div>
</section>
</body>
每次用户单击按钮时,<section>
都会在前一个 id 之后插入具有新 id 的整个新部分<section>
。例如带有 id 的新部分entrySection_2
。
有没有一种简单的方法可以将整个部分保存到结构不变的变量中并插入到上一部分之后?
解决方案
您可以尝试使用 jQuery 的.clone()
and.attr()
和.insertAfter()
喜欢以下方式:
var cloneCount = 1
$('#add').click(function(){
$('#entrySection_1').clone()
.attr('id', 'entrySection_'+ ++cloneCount)
.insertAfter('[id^=entrySection_]:last');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="add">Add</button>
<section class="pb-5" id="entrySection_1">
<div class="container card">
<div class="row" style="padding-top: 10px;">
<div class="col-4">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" >WO Number</span>
</div>
<input type="text" class="form-control">
</div>
</div>
<div class="col-8">
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text" >Status</span>
</div>
<input type="text" class="form-control">
</div>
</div>
</div>
</div>
</section>
推荐阅读
- python - 通过 Python 使用 ImageMagick 和 Wand 将 PDF 转换为 PNG
- python - Python Selenium 请求未运行
- javascript - 添加媒体查询时,我的 javascript 代码不起作用?
- javascript - socket.io 目录是如何识别的
- javascript - WP Rocket 将导致点击事件被触发两次
- java - 播放取决于所写文本的声音
- java - Project Loom 中的异常是否有朝一日会通过 ExecutorService 上下文传播?
- p5.js - 我有一个关于在 p5.js 上使用海龟图形函数和循环方法的问题
- css - 如何旋转身体的两个背景图像
- javascript - NodeJS 类中的私有常量