javascript - 将特定 Div 包装在新 Div 中

标签 javascript jquery html

所以我遇到了一个问题,我无法弄清楚如何实现它,在 CodePen 上尝试了几种不同的方法,但不太确定从哪里开始,所以任何建议都会很棒。

我想找到所有以字母 S 结尾的 div 并将它们包装在一个新的 div 中,然后对于字母 R 和 L 也是如此。

现实世界的场景是希望将牛仔裤尺码分组到产品页面上的“小”、“常规”和“长”部分,以实现以下外观:

enter image description here

<div class="small__stuff"></div>
<div class="reg__stuff"></div>
<div class="large__stuff"></div>

<div class="content__wrapper">
    <div class="content__container">    
        <div class="content__item">
            <span>30S</span>
        </div>

        <div class="content__item">
            <span>30R</span>
        </div>

        <div class="content__item">
            <span>30L</span>
        </div>

        <div class="content__item">
            <span>32S</span>
        </div>

        <div class="content__item">
            <span>32R</span>
        </div>

        <div class="content__item">
            <span>32L</span>
        </div>

        <div class="content__item">
            <span>34S</span>
        </div>

        <div class="content__item">
            <span>34R</span>
        </div>

        <div class="content__item">
            <span>34L</span>
        </div>

        <div class="content__item">
            <span>36S</span>
        </div>

        <div class="content__item">
            <span>36R</span>
        </div>

        <div class="content__item">
            <span>36L</span>
        </div>

        <div class="content__item">
            <span>38S</span>
        </div>

        <div class="content__item">
            <span>38R</span>
        </div>

        <div class="content__item">
            <span>38L</span>
        </div>

        <div class="content__item">
            <span>40S</span>
        </div>

        <div class="content__item">
            <span>40R</span>
        </div>

        <div class="content__item">
            <span>40L</span>
        </div>
    </div>  
</div>

代码笔:https://codepen.io/nickelse/pen/dyPGvJm

最佳答案

您可以尝试使用 .each().endsWith().wrap()

演示:

$('.content__item').each(function(){
  var text = $(this).find('span').text();
  if(text.endsWith('S')){
    $(this).wrap("<div class='parent_S'></div>") ;
  }
  else if(text.endsWith('R')){
    $(this).wrap("<div class='parent_R'></div>") ;
  }
  else if(text.endsWith('L')){
    $(this).wrap("<div class='parent_L'></div>") ;
  }
});
.parent_S{
  color: red;
  font-size: 12px;
}
.parent_R{
  color: green;
}
.parent_L{
  color: blue;
  font-size: 18px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="small__stuff"></div>
<div class="reg__stuff"></div>
<div class="large__stuff"></div>

<div class="content__wrapper">
    <div class="content__container">    
        <div class="content__item">
            <span>30S</span>
        </div>

        <div class="content__item">
            <span>30R</span>
        </div>

        <div class="content__item">
            <span>30L</span>
        </div>

        <div class="content__item">
            <span>32S</span>
        </div>

        <div class="content__item">
            <span>32R</span>
        </div>

        <div class="content__item">
            <span>32L</span>
        </div>

        <div class="content__item">
            <span>34S</span>
        </div>

        <div class="content__item">
            <span>34R</span>
        </div>

        <div class="content__item">
            <span>34L</span>
        </div>

        <div class="content__item">
            <span>36S</span>
        </div>

        <div class="content__item">
            <span>36R</span>
        </div>

        <div class="content__item">
            <span>36L</span>
        </div>

        <div class="content__item">
            <span>38S</span>
        </div>

        <div class="content__item">
            <span>38R</span>
        </div>

        <div class="content__item">
            <span>38L</span>
        </div>

        <div class="content__item">
            <span>40S</span>
        </div>

        <div class="content__item">
            <span>40R</span>
        </div>

        <div class="content__item">
            <span>40L</span>
        </div>
    </div>  
</div>

关于javascript - 将特定 Div 包装在新 Div 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59250620/

相关文章:

javascript - 在使用 pdf.js 渲染的 Canvas 上平移 pdf 文件时出现问题?

javascript - 用于拆分成句子的正则表达式,忽略小数作为拆分的一部分?

javascript - 如何在 google plus 上共享库中的单个图像并附上一些描述?

javascript - 如何滚动焦点具有相同类名或相同属性的特定 div

jquery - 将来自不同帐户的 Instagram 照片显示到我的网页

html - 一个带有两个链接的 fa 图标

javascript - 我怎样才能从这个表格内容中获取链接(我猜它是 javascript)? (没有 Selenium )

javascript - 数据表 javascript 来源的数据,无需指定列名

javascript - 输入标签未正确附加到 div 内。

javascript - 选择的数据不正确