求助:将指定span元素从同级div移动到对应前序同级div的正确jQuery实现
解决方法:将每个span精准移动到对应前序的partnerName容器
你的问题根源在于使用了全局选择器.partnerItemWrapper .partnerHeader .partnerName,这会让每个<span class="meta-category">被追加到所有匹配的partnerName容器中。我们需要针对每个span,定位它对应的前序同级.partnerItemWrapper,再将其移动到该容器内的partnerName里。
修正后的jQuery代码
$('.ddsforlife_partnersFeedWrapper .nectar-post-grid-item .meta-category').each(function() { // 获取当前span所在的父级nectar-post-grid-item元素 const $currentPostItem = $(this).closest('.nectar-post-grid-item'); // 找到当前元素的前序同级partnerItemWrapper const $targetPartnerWrapper = $currentPostItem.prev('.partnerItemWrapper'); // 将当前span追加到对应wrapper里的partnerName容器中 $targetPartnerWrapper.find('.partnerHeader .partnerName').append($(this)); });
代码逻辑解释
closest('.nectar-post-grid-item'):安全定位到当前span所在的最外层父容器,即使后续HTML层级有小变动也能正常工作prev('.partnerItemWrapper'):只选中当前nectar-post-grid-item的直接前序同级目标容器,确保不会误选其他组的wrapperfind('.partnerHeader .partnerName'):在对应的wrapper内部查找目标容器,保证每个span只会被移动到自己对应的partnerName中
这样修改后,每组的<span class="meta-category">都会被精准移动到它前面紧邻的.partnerItemWrapper下的.partnerName容器里,不会出现所有span堆积到同一容器的问题。
内容的提问来源于stack exchange,提问作者dubbs
相关产品推荐
相关产品推荐

