Ответ 1
Я бы сделал:
var max = 0;
$(".blah").each(function(){
num = parseInt(this.id.split("-")[1],10);
if(num > max)
{
max = num;
}
});
Большинство людей будут делать это.
У меня есть куча таких элементов, как:
<div id="car-123" class="blah">..</div>
Я хочу перебрать все из них и получить самый высокий идентификатор, т.е. 123
как это сделать?
Правильно ли и лучший способ?
$(".blah").each(function() {
var id = $(this).attr('id').split('-')[0];
if( id > newid)
newid = id;
});
Я бы сделал:
var max = 0;
$(".blah").each(function(){
num = parseInt(this.id.split("-")[1],10);
if(num > max)
{
max = num;
}
});
Большинство людей будут делать это.
Я бы пошел на это, используя .map
, .get
и .sort
:
$('.blah').map(function(){
return parseInt(this.id.split('-')[1], 10);
}).get().sort(function(a, b) {
return b - a;
})[0];
Вы хотите использовать parseInt
, чтобы числовые операторы применяли
var id = parseInt($(this).attr('id').split('-')[1]);
Я думаю, вам нужно второе значение разделенного идентификатора, и вам может понадобиться преобразовать строку в целое число, например:
var newid = 0;
$(".blah").each(function() {
var id = parseInt( this.id.split('-')[1], 10 );
if( id > newid)
newid = id;
});