I have a bunch of elements like:
<div id="car-123" class="blah">..</div>
I want to loop through all of them and get the highest ID i.e. 123
how to do this?
Is below correct and the best way?
$(".blah").each(function() {
var id = $(this).attr('id').split('-')[0];
if( id > newid)
newid = id;
});
I would do:
var max = 0;
$(".blah").each(function(){
num = parseInt(this.id.split("-")[1],10);
if(num > max)
{
max = num;
}
});
Most people would do this way.
I'd go for this, using .map
, .get
and .sort
:
$('.blah').map(function(){
return parseInt(this.id.split('-')[1], 10);
}).get().sort(function(a, b) {
return b - a;
})[0];
You want to use parseInt
so numerical operators apply
var id = parseInt($(this).attr('id').split('-')[1]);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With