【问题标题】:JQuery each issue - div wrapped twiceJQuery 每个问题 - div 包装两次
【发布时间】:2021-11-18 17:38:42
【问题描述】:

我正在尝试解决我在使用 JQuery 时遇到的每个问题。 我有一个项目列表(类 .list),我需要将其定位并包装在一个 div(类 .wrap)中。如果列表有效,但当有第二个列表时,循环在新 div 中将列表包装两次。

这个想法是每次有一个名为 list 的类时,循环将该特定类包装在一个名为 wrap 的 div 中。

这里是代码

HTML

 <div class='parent'>
    <div class='child'>
      <div class='list'>
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div>
    </div>
  </div>
  
   <div class='parent'>
    <div class='child'>
      <div class='list'>
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div>
    </div>
  </div>

jQuery

jQuery(".parent").each(function () {
  jQuery(".list").wrap("<div class='wrap'></div>");
});

这是错误的结果。 从下面的示例中可以看到,类列表被包装了两次。

<div class="parent">
    <div class="child">
      <div class="wrap"><div class="wrap"><div class="list">
        <div>1</div>
        <div>2</div>
        <div>3</div>
      </div></div></div>
    </div>
  </div>

这就是我想要实现的目标。

<div class="parent">
    <div class="child">
      <div class="wrap">
          <div class="list">
          <div>1</div>
          <div>2</div>
          <div>3</div>
        </div>
      </div>
    </div>
  </div>

提前谢谢你!

【问题讨论】:

  • 您没有选择列表是父列表 您选择所有父节点,循环,选择页面中的所有列表,然后换行。因此,您为每个父级选择所有列表一次。

标签: javascript html jquery frontend


【解决方案1】:

您要选择父列表中的列表,而不是选择所有列表

jQuery(this).find(".list").wrap()

【讨论】:

  • 太棒了,成功了!非常感谢(:
猜你喜欢
  • 2011-01-06
  • 2014-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多