html - 总表/容器中的第 n 个 child

标签 html css

我在 .container 中有一些具有相同类 (class="myDiv") 的 div,这些 div 基本上可以位于容器内的任何位置...

我想定位所有具有 .myDiv 类的 div 并像这样应用 css:

  • 第一个 div 的颜色应该是“红色”
  • 第二个 div“绿色”
  • ...

我目前的做法是这样的: jsFiddle (下面的片段副本)

.myDiv:nth-child(1){color:red;}
.myDiv:nth-child(2){color:green;}
.myDiv:nth-child(3){color:aqua;}
.myDiv:nth-child(4){color:orange;}
.myDiv:nth-child(5){color:pink;}
<div class="container">
  <table>
    <tr>
      <td><div class="myDiv">One</div></td>
      <td>Normal text</td>
      <td>Normal text</td>
      <td>Normal text</td>
      <td>
        <table>
          <tr>
            <td><div class="myDiv">Two</div></td>
          </tr>
        </table>
      </td>
      <td><div class="myDiv">Three</div></td>
      <td><div class="myDiv">Four</div></td>
    </tr>
  </table>
  <div class="myDiv">Five</div>
</div>

预期结果:

enter image description here

实际结果:

enter image description here

最佳答案

如注释中所述,nth-child 不是“第 n 次出现”,而是基于父元素的特定子元素。

但是,如果您将 CSS 修改为这样,您可以使用基本的 javascript 实现类似的效果:

.myDiv1{color:red;}
.myDiv2{color:green;}
.myDiv3{color:aqua;}
.myDiv4{color:orange;}
.myDiv5{color:pink;}

然后,以下简单的 javascript 将分配第 n 次出现。

var divs = document.getElementsByClassName("myDiv");
for (var i = 0; i < divs.length; i++)
    divs[i].classList.add('myDiv'+(i+1));

JSFiddle

关于html - 总表/容器中的第 n 个 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51758548/

相关文章:

javascript - 如何防止 iOS webapp 中的链接在新的 Safari 选项卡中打开

html - 如何垂直对齐跨度内的图标

javascript - 动态页面转换效果

javascript - 如何处理对 Angular 堆叠的圆形图像背景元素悬停?

javascript - 有没有办法在给定的持续时间内更改跨度文本的颜色?

html - 如何使 Facebook 评论的宽度为 100%?

html - 内容中带有边框的奇怪行为

c# - 如何使用 C# 编辑网站中的文本字段?

javascript - jQuery悬停表格设计动画

html - 使用 HTML/CSS GUI 在 Ubuntu 上开发 native 应用程序?