提问者:小点点

如何仅选择某些类型的交替(或偶数/奇数)元素?[副本]


这样说:

<div class="container">
  <div>ciao</div>
  <p>ciao</p>
  <span>ciao</span>
  <div>ciao</div>
  <div>ciao</div>
  <span>ciao</span>
  <i>ciao</i>
  <p>ciao</p>
  <div>ciao</div>
</div>

现在,有没有任何方法可以在由divp组成的列表中只选择偶数元素,而排除所有其他类型?

我的意思是:

.container > *:nth-child(even){ // >>> BUT only from say, P and DIV
  color: red; 
}

共2个答案

匿名用户

不,不可能。您需要通过JavaScript来完成:

var items = document.querySelector(".container").querySelectorAll("div, p");
for (let index = 0; index < items.length; index++) {
    if (!(index % 2)) {
        items[index].style.color = "red";
    }
}

匿名用户

只有一部分::nth-child(任何类型)计算同一父级中同一级别的所有子元素,而不管它们的类型。

nth-of-type,它更接近您想要的内容:

null

p:nth-of-type(even) {
  color: red;
}
<div>
  <p>p / 1</p>
  <h2>h2 / 2</h2>
  <p>p / 3</p>
  <p>p / 4</p>
  <div>div / 5</div>
  <p>p / 6</p>
</div>