javascript - 为遇到的每个部分包装 li 项目
问题描述
我想知道是否可以在每次 li 项具有类 .gsection 时将我的列表项包装到 ul 中?所以我想寻找 li.gsection 标签,然后它们会包装所有项目,直到找到下一个 li.gsection。ul 包装器还应该添加两个类,其中一个是动态的。li.gsection 始终是第二个类名,而我的添加类始终是第三个。
我对 wordpress 使用重力形式,所以我无法编辑 html 标记。
让我知道我是否需要更多地解释自己。
我现在拥有的:
<ul class="myList">
<li class="gfield gsection contactInfo otherClassesIsAdded">Contact Info</li>
<li>Number</li>
<li>Mail</li>
<li class="gfield gsection contactInfo otherClassesIsAdded">Company info</li>
<li>Company name</li>
<li>Mail</li>
<li class="gfield gsection contactInfo otherClassesIsAdded">Extra Info</li>
<li>URL</li>
<li>Notes</li>
</ul>
<ul class="myList">
<li class="gsectionWrapper contactInfoWrapper">
<ul>
<li class="gfield gsection contactInfo otherClassesIsAdded">Contact Info</li>
<li>Number</li>
<li>Mail</li>
</ul>
</li>
<li class="gsectionWrapper companyInfoWrapper">
<ul>
<li class="gfield gsection companyInfo otherClassesIsAdded">Company info</li>
<li>Company name</li>
<li>Mail</li>
</ul>
</li>
<ul>
<li class="gsectionWrapper extraInfoWrapper">
<ul>
<li class="gfield gsection contactInfo otherClassesIsAdded">Extra Info</li>
<li>URL</li>
<li>Notes</li>
</ul>
</li>
</ul>
解决方案
你可以$.children()
用$.each()
const list = $('#myList')
let wrapper;
list.children('li')
.each(function(){
const current = $(this)
if(current.hasClass('gsection')){
wrapper = $('<ul class="gsectionWrapper contactInfoWrapper"></ul>')
list.append(wrapper)
}
list.detach(current)
wrapper.append(current)
})
<ul id='myList' class="myList">
<li class="gfield gsection contactInfo otherClassesIsAdded">Contact Info</li>
<li>Number</li>
<li>Mail</li>
<li class="gfield gsection contactInfo otherClassesIsAdded">Company info</li>
<li>Company name</li>
<li>Mail</li>
<li class="gfield gsection contactInfo otherClassesIsAdded">Extra Info</li>
<li>URL</li>
<li>Notes</li>
</ul>
推荐阅读
- swift - 显示最近的消息未定义符号:_OBJC_CLASS_$_SFAuthenticationSession
- html - 如何在 VSCode 中将所有 HTML 属性设置为斜体?可能吗?
- javascript - 使用 Javascript 处理复数的不同方法是什么以及如何支持本地化?
- ios - MPSImageHistogramEqualization 抛出偏移量必须小于 [缓冲区长度] 的断言
- pandas - 数据可视化 Python
- mysql - 使用 laravel 获取外键详细信息
- flutter - 如何通过时间限制颤振上传和修剪视频
- ruby-on-rails - How do I use content_for
- vb.net - 如何修复(找不到文件)异常
- maven - Maven 发布分支失败,错误=7,参数列表太长