jQuery eq()具有不同的类名

时间:2016-09-24 15:04:59

标签: jquery

我有以下html:

<div class="block"></div>
<div class="block first"></div>
<div class="block"></div>
<div class="block"></div>
<div class="block">this</div> // I need to target this to add another class
<div class="block"></div>

我想先从&#34;块中选择第3个&#34; DIV:

$(".block.first").eq(3).addClass("last");

当然我错过了一些东西。 &#34;第一&#34; class被动态地添加到&#34; block&#34; div和我需要从第一个&#34;第一个&#34;类被添加。有意见的人吗?谢谢!

2 个答案:

答案 0 :(得分:1)

要实现此目的,您可以获取.block.first元素的索引,然后在此之后选择元素3。试试这个:

var blockFirstIndex = $('.block.first').index();
$('.block').eq(blockFirstIndex + 2).addClass('foo');
.foo { color: #c00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="block">block</div>
<div class="block first">block first</div>
<div class="block">block</div>
<div class="block">block</div>
<div class="block">this // I need to target this to add another class</div>
<div class="block">block</div>

答案 1 :(得分:1)

您可以使用$.fn.nextAll()

$('.block.first').nextAll('.block').eq(2).addClass('last');