Reputation: 13
I want to add class to each last "content-inside" inside class "content". How to achieve this with jQuery? My final result should look like this:
<div class="content">
<div class="content-inside"></div>
<div class="content-inside"></div>
<div class="content-inside last"></div>
</div>
<div class="content">
<div class="content-inside last"></div>
</div>
<div class="content">
<div class="content-inside"></div>
<div class="content-inside last"></div>
</div>
Upvotes: 0
Views: 8725
Reputation: 2017
Please use below JS code to find last div and add class
$('.content').each(function(){
$(this).find(".content-inside").filter(":last").addClass("last");
});
Upvotes: 1
Reputation: 4637
Use this
$('.content').each(function(){
$(this).find(".content-inside").last().addClass("last");
});
Upvotes: 0
Reputation: 8181
use last()
$('.content .content-inside').last().addClass('last');
Upvotes: 0
Reputation: 24559
With JQuery, you need to think of selecting as you would with css.
$(.content div)
$(.content div:last-child)
This means that your JQuery will be:
$('.content div').addClass("content-inside");
$('.content div:last-child').addClass("last");
$('button').click(function() {
$('.content div').addClass("content-inside");
$('.content div:last-child').addClass("last");
});
.content-inside {
color: red;
}
.last {
color: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="content">
<div>1</div>
<div>2</div>
<div>3</div>
</div>
<div class="content">
<div>4</div>
</div>
<div class="content">
<div>5</div>
<div>6</div>
</div>
<button>Add 'content-inside'</button>
Upvotes: 1
Reputation: 82241
You can use :last-child
selector:
$('.content .content-inside:last-child').addClass('last');
Upvotes: 3