jquery - 用 css 或 jquery 改变第 n 个 child 的颜色

标签 jquery html css

我正在使用 slick slider ,它的结构是这样的:

<div class="slick-track">
  <ul>
    <li class="slick slick-active"></li>
    <li class="slick slick-active"></li>
    <li class="slick slick-active"></li>
    <li class="slick"></li>
    <li class="slick"></li>
    <li class="slick"></li>
    <li class="slick"></li>
    <li class="slick"></li>
   <ul>
</div>

一次显示 3 张幻灯片。即,当下一张幻灯片显示 2、3、4 时,li 获得 slick-active

我想做的是从事件中选择中间元素并更改其背景颜色。

我试过了,但是不行

.slick-track .slick-active:nth-child(odd) {
    background: red;
}

.slick-track .slick-active:nth-child(even) {
    background: green;
}

.slick-track .slick-active:nth-child(2) {
    background: red;
}

它计算所有的 li 然后选择甚至关闭它们

编辑 当下一张幻灯片出现时,html 看起来像这样

这是问题 .slick-track .slick-active:nth-child(odd) 如果使用它,它会选择 odd li 在所有的 li 元素中

<div class="slick-track">
      <ul>
        <li class="slick"></li>
        <li class="slick slick-active"></li>
        <li class="slick slick-active"></li>
        <li class="slick slick-active"></li>
        <li class="slick"></li>
        <li class="slick"></li>
        <li class="slick"></li>
        <li class="slick"></li>
       <ul>
    </div>

最佳答案

你可以试试:

.slick-active + .slick-active + .slick-active {
    background-color: initial;
}

.slick-active + .slick-active {
    background-color: red;
}

关于jquery - 用 css 或 jquery 改变第 n 个 child 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365480/

相关文章:

html - bootstrap col-md-12 vs. width 100% 在显示/隐藏 div 时表现不同

javascript - MailChimp JS 验证不起作用

javascript - 为什么数组要倒着写?

asp.net - 禁用的 asp.net 按钮禁用按钮验证

php - $_GET 无需使用 javascript 更新站点

html - 给 parent 与 child 相同的宽度

Jquery Mobile 1.3 和输入大小问题?

javascript - 停止 iframe youtube 视频

javascript - 如何调试 MSSQL 中的资源 #6 错误?

javascript - CSS 和 JS - 将背景图像扩展到 div 之外