2016-10-04 3 views
0

У меня есть список:Получить более высокое значение идентификатора списка в JQuery

<ul id="testList"> 
    <li id="3"></li> 
    <li id="2"></li> 
    <li id="1"></li> 
</ul> 

Мне нужно получить более высокое значение идентификатора литиево элемента с JQuery. В этом примере это будет, 3. Затем добавьте класс «последний». Я пытался с каждой функцией, но не работал.

$('#testList li').each(function(index, li){ 

    //Here obtain a higher value id       
    $('#testList li').last().addClass('last');     

}); 

Я надеюсь, что кто-то может мне помочь. Большое спасибо! С уважением!

ответ

2

Вы можете использовать Math.max и map(), чтобы получить максимальное значение ID, а затем addClass()

var h = Math.max.apply(null, $('#testList li').map(function() { 
 
    return $(this).attr('id'); 
 
})) 
 

 
$('#' + h).addClass('last');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="testList"> 
 
    <li id="3"></li> 
 
    <li id="2"></li> 
 
    <li id="1"></li> 
 
</ul>

+1

Ницца. Знал, что был лучший способ, полностью забыл о «карте». –

+0

Спасибо, ребята, вы здоровы! Я решаю свою проблему! ;-) – Emily

0

Вероятно, не самый эффективный способ, но это будет сделать это:

// initialize the max value to a low number 
var max = 0; 
// iterate over each li item in the list 
$('#testList li').each(function() { 
    // ensure we have a number 
    var id = parseInt($(this).prop('id')); 
    if (! isNaN(id)) { 
     max = Math.max(max, id); 
    } 
}); 

// Given that max contains an ID, just pass that in to the selector to add class 
$('#' + max).addClass('last'); 
Смежные вопросы