【问题标题】:Give unique class name to every appended div为每个附加的 div 赋予唯一的类名
【发布时间】:2019-09-27 12:43:29
【问题描述】:

我试图为我附加的每个 div 赋予一个唯一的类名。特别是指带有“movehere-#”类的 div,我希望它看起来像这样:

<section>
  <div></div>
  <div></div>
  <div></div>
  <div class="movehere-0">
  </div>
  <div></div>
  <div></div>
  <div></div>
  <div class="movehere-1">
  </div>
  <div></div>
  <div></div>
  <div class="movehere-2">
  </div>
</section>

这是原始代码。 JQuery 每 3 次添加一个 div,最后添加一个 div。它附加了“movehere”类。你如何给它一个独特的类“movehere-#”?

<section>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</section>

<script>

$("div > div:nth-child(3n), div:last-child")
.after('<div class="movehere"></div>');
</script>

我是一名初学者,希望得到任何解释 :)

【问题讨论】:

  • 增量类通常是代码异味。您需要这样做有什么具体原因吗?我问,因为可能会有更好、更可扩展的方法
  • 这是为什么呢?我是 jquery 的新手,我试图找到的大图解决方案是将 div 和部分的列表(来自 wordpress)附加到特定的布局中。关于“movehere-0”上方的 3 个 div,假设它们将是单击按钮 1 2 和 3。在 div“movehere-0”内将附加 3 个 用于 1 2 和 3。以此类推
  • 让我尝试改写一下 - 我计划在“.movehere-0”中附加 3 个
    ,它们与“.movehere-0”上方的 3 个 div 相关。 “.movehere-1”内会有3个
    与“.movehere-1”上面的3个
    相关。我认为用“i”设置一个变量是最简单的添加方法:\虽然我不确定

标签: jquery html class append


【解决方案1】:

你可以这样做:

$('section > div:nth-child(3n)').each(function(i,x) {
  $(this).addClass("movehere-" + i);
})

这将为您的部分中的每个 3'rd div 添加一个类。

演示

$('section > div:nth-child(3n)').each(function(i, x) {
  $(this).addClass("movehere-" + i);
})
div[class^="movehere"] {
  color: blue;
  font-size: 30px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<section>
  <div>1</div>
  <div>2</div>
  <div>3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
</section>

【讨论】:

  • 有效!!我从没想过要使用第二个函数来添加一个类。谢谢你:)
  • @MelissaGinoza 没问题,很乐意提供帮助
猜你喜欢
  • 2017-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-12
相关资源
最近更新 更多