gpt4 book ai didi

jquery - 在 CSS 中选择具有特定类的序列的第一个和最后一个元素

转载 作者:太空宇宙 更新时间:2023-11-03 22:17:34 24 4
gpt4 key购买 nike

我有很多具有 line 类和 strong.datum 元素的 div。我需要使用类 .active 突出显示每个序列的第一个和最后一个元素。如果无法使用 CSS 实现,是否有机会通过 jQuery 实现?

在这个例子中应该有类 .start 元素 .dt_26, .dt_66, .dt_27, .dt_77 和类 .end 应该有元素 .dt_46、.dt_76、.dt_57 和 .dt_97

<div class="line">
<strong class="dt_16 app_54 datum">1.6.</strong>
<strong class="dt_26 app_54 datum active">2.6.</strong>
<strong class="dt_36 app_54 datum active">3.6.</strong>
<strong class="dt_46 app_54 datum active">4.6.</strong>
<strong class="dt_56 app_54 datum">5.6.</strong>
<strong class="dt_66 app_54 datum active">6.6.</strong>
<strong class="dt_76 app_54 datum active">7.6.</strong>
<strong class="dt_86 app_54 datum active">8.6.</strong>
<strong class="dt_96 app_54 datum active">9.6.</strong>
<strong class="dt_106 app_54 datum">10.6.</strong>
</div>
<div class="line">
<strong class="dt_17 app_54 datum">1.7.</strong>
<strong class="dt_27 app_54 datum active">2.7.</strong>
<strong class="dt_37 app_54 datum active">3.7.</strong>
<strong class="dt_47 app_54 datum active">4.7.</strong>
<strong class="dt_57 app_54 datum active">5.7.</strong>
<strong class="dt_67 app_54 datum">6.7.</strong>
<strong class="dt_77 app_54 datum">7.7.</strong>
<strong class="dt_87 app_54 datum active">8.7.</strong>
<strong class="dt_97 app_54 datum active">9.7.</strong>
<strong class="dt_107 app_54 datum">10.7.</strong>
</div>

最佳答案

这是一个 jQuery 解决方案...

使用 .prev().next() , 你可以遍历所有的 .line .children()元素并检查它们是第一个还是最后一个。

我什至为了好玩而添加了一些东西......你也可以检查他们是否“孤独”......;)

如您所见,代码非常容易解释...

$(".line").children().each(function(){

// Firsts
if( $(this).hasClass("active") && !$(this).prev().hasClass("active") ){
$(this).addClass("first");
}

// Lasts
if( $(this).hasClass("active") && !$(this).next().hasClass("active") ){
$(this).addClass("last");
}

// Lonelies
if( $(this).hasClass("active") && !$(this).prev().hasClass("active") && !$(this).next().hasClass("active") ){
$(this).removeClass("first last").addClass("alone");
}
});
.first{
color: green;
}
.last{
color: orange;
}
.alone{
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="line">
<strong class="dt_16 app_54 datum">1.6.</strong>
<strong class="dt_26 app_54 datum active">2.6.</strong>
<strong class="dt_36 app_54 datum active">3.6.</strong>
<strong class="dt_46 app_54 datum active">4.6.</strong>
<strong class="dt_56 app_54 datum">5.6.</strong>
<strong class="dt_66 app_54 datum active">6.6.</strong>
<strong class="dt_76 app_54 datum active">7.6.</strong>
<strong class="dt_86 app_54 datum active">8.6.</strong>
<strong class="dt_96 app_54 datum active">9.6.</strong>
<strong class="dt_106 app_54 datum">10.6.</strong>
</div>
<div class="line">
<strong class="dt_17 app_54 datum">1.7.</strong>
<strong class="dt_27 app_54 datum active">2.7.</strong>
<strong class="dt_37 app_54 datum active">3.7.</strong>
<strong class="dt_47 app_54 datum active">4.7.</strong>
<strong class="dt_57 app_54 datum active">5.7.</strong>
<strong class="dt_67 app_54 datum">6.7.</strong>
<strong class="dt_77 app_54 datum">7.7.</strong>
<strong class="dt_87 app_54 datum active">8.7.</strong>
<strong class="dt_97 app_54 datum">9.7.</strong>
<strong class="dt_107 app_54 datum">10.7.</strong>
</div>

关于jquery - 在 CSS 中选择具有特定类的序列的第一个和最后一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55766076/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com