循环遍历所有带有'blah'类的元素并找到最高的id值

时间:2011-01-06 20:01:59

标签: jquery

我有很多元素,如:

<div id="car-123" class="blah">..</div>

我想遍历所有这些并获得最高ID,即123

怎么做?

以下是正确的,最好的方法吗?

$(".blah").each(function() {

   var id = $(this).attr('id').split('-')[0];

   if( id > newid)
      newid = id;

});

4 个答案:

答案 0 :(得分:17)

我愿意:

var max = 0;
$(".blah").each(function(){
    num = parseInt(this.id.split("-")[1],10);
    if(num > max)
    {
       max = num;
    }
});

大多数人会这样做。

答案 1 :(得分:10)

我会使用.map.get.sort来实现此目的:

$('.blah').map(function(){
    return parseInt(this.id.split('-')[1], 10);
}).get().sort(function(a, b) {
    return b - a;
})[0];

答案 2 :(得分:1)

您想使用parseInt,因此应用数值运算符

var id = parseInt($(this).attr('id').split('-')[1]);

答案 3 :(得分:0)

我认为您需要分割ID的第二个值,并且您可能希望将字符串转换为整数,如下所示:

var newid = 0;

$(".blah").each(function() {

  var id = parseInt( this.id.split('-')[1], 10 );

  if( id > newid)
    newid = id;

});