javascript - 如何将html div复制到另一个div而不显示无div
问题描述
我有一个像下面这样的结构。在lookbook-pointadding
我只需要复制设置了的div
元素display: block
。
我的代码没有删除div
with display: none
。
我也尝试过$("#lookbook-pointadding").clone().appendTo("#lookbook-pointedit")
,但它也不起作用。
谁能告诉我哪里出错了?
<div id="lookbook-pointedit"></div>
<div id="lookbook-pointadding">
<div class="drag" style="display: none">A</div>
<div class="drag" style="display: none">B</div>
<div class="drag" style="display: block">C</div>
<div class="drag" style="display: none">D</div>
<div class="drag" style="display: block">E</div>
</div>
$('#submit').click(function(e) {
e.preventDefault();
if ($('#lookbook-pointadding.drag').css('display') == 'none') {
$(this).remove(); //already tried $('#lookbook-pointadding.drag').removed();
}
var point = $('div#lookbook-pointadding').html();
$('#lookbook-pointedit').append(point);
})
解决方案
要解决此问题,您可以使用:visible
选择器仅检索div
DOM 中显示的子元素。然后您可以clone()
将它们附加到所需的目标。尝试这个:
$('#submit').click(function(e) {
e.preventDefault();
var $clones = $('#lookbook-pointadding div:visible').clone();
$('#lookbook-pointedit').append($clones);
})
#lookbook-pointedit {
color: #C00;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="lookbook-pointedit"></div>
<div id="lookbook-pointadding">
<div class="drag" style="display: none">A</div>
<div class="drag" style="display: none">B</div>
<div class="drag" style="display: block">C</div>
<div class="drag" style="display: none">D</div>
<div class="drag" style="display: block">E</div>
</div>
<button id="submit">Submit</button>
推荐阅读
- python - 将 {serve} 元图添加到现有的 TensorFlow 模型
- winapi - 透明窗口上的常用控件?
- reactjs - 使用 axios 无法成功发帖
- appium - 如何在 Android 上找到带有 Appium 的 NativeScript TextField?
- azure - Azure CosmosDB COUNT 消耗大量 RU/s (MongoDB)
- matlab - 具有对数 bin 和归一化的直方图
- java - 如何修复无法创建java虚拟机?
- laravel - laravel 一对多关系模型请使用 Laravel 表单构建器示例
- c# - Xamarin Forms listview 项目显示不正确
- swift - 在我点击单元格后,它通过了我 2 个视图,我该如何解决?