javascript - 在 2 个匹配元素的内容周围添加一个 Div
问题描述
我正在尝试在 2 个 div 周围添加一个类名“包裹”的 div,其中包含 innerHTML“一”和“二”
<div class='blk'>one</div>
<div class='blk'>two</div>
在这里,我尝试使用第一个和第二个“clearfix”类元素,并将其用作选择器,用 div 将它们之间的内容包装起来。我从下面的代码中了解到 wrapAll 将只包装匹配的元素。我试图弄清楚 jquery 中的哪些功能将帮助我用父 div 包装一个和两个。
var arr = $('.clearfix');
$(arr[0], arr[1]).wrapAll('<div class="wrapped"/>');
.wrapped {
background-color: 'red';
}
.hidden {
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<div class='clearfix'></div>
<div class='blk'>one</div>
<div class='blk'>two</div>
<div class='clearfix'></div>
<div class='blk'>3</div>
<div class='blk'>4</div>
<div class='clearfix'></div>
</div>
我的预期输出是:
<div>
<div class='clearfix'></div>
<div class='wrapped'>
<div class='blk'>one</div>
<div class='blk'>two</div>
</div>
<div class='clearfix'></div>
<div class='blk'>3</div>
<div class='blk'>4</div>
<div class='clearfix'></div>
</div>
解决方案
你可以试试.filter()
var arr = $('.blk');
arr.filter((i, el) => i < 2).wrapAll(`<div class="wrapped"></div>`);
.wrapped{
background-color: red;
}
.hidden{
display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div>
<div class='clearfix'></div>
<div class='blk'>one</div>
<div class='blk'>two</div>
<div class='clearfix'></div>
<div class='blk'>3</div>
<div class='blk'>4</div>
</div>
推荐阅读
- encryption - 使用 Raspberry Pi 4 进行文件加密
- javascript - 如何获取和设置 ES6 Maps 中的数组键?
- java - 即使没有文件上传或选择,MultipartFile 上传也有一个值
- xamarin - api调用后Xamarin Picker没有更新
- c# - 将 C# 字节属性硬编码到模型中
- react-native - 使用 React Native Paper 的模态对话框?
- javascript - 如何调试由转换成一堆 eval() 语句的 JavaScript 代码组成的 Chrome 扩展?
- java - 如何从 ArrayList 中删除重复的联系人
- f# - 如何在 f# 中将两个不同类型的序列组合成元组?
- c# - 如何将json文件转换为List