2011-01-06 7 views
0

у меня есть этот

 $.each(data, function (url) { 
     $("ul").append($("<li class='horizontal'></li>").html(this.title)); 
    }); 

Я хочу, чтобы добавить класс последнего к последнему ... как бы я это сделать

+0

Я предполагаю, что есть только 1 ul, и вы хотите добавить класс 'horizonal' к последнему li? Вы действительно должны объяснить это в вопросе. –

ответ

6
$.each(data, function(i,v){ 
    $('<li />').html(v.title).appendTo('ul'); 
}); 
$('ul li:last').addClass('horizontal'); 

jsFiddle

+0

Я также улучшил ваш цикл, используя 'appendTo' вместо того, чтобы помещать объект jQuery внутри' append'. –

+1

Как еще один крошечный момент (не nitpicking), '$ (" ")' может быть просто '$ ("

  • ")'. – karim79

  • +0

    Проголосовали, как вы его заработали. – karim79

    1

    Если данные массив, вы могли бы сделать

    data.length 
    

    , и это даст вам количество. Затем можно было бы нести счетчик внутри .each и проверить, попали ли вы к последнему элементу.

    Что-то вроде этого ... но в jquery должен быть последний селектор.

    3

    Вы имеете в виду UL или LI? Просто сделайте (после цикла):

    $("#theUl li:last").addClass("horizontal"); // or $("ul:last"), whichever you mean 
    

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

    Для лучшей эффективности работы, вы можете уменьшить количество операций записи в DOM путем создания ЛИС автономный и добавление их в один присест:

    var lis = ''; 
    $.each(data, function (url) { 
        lis += "<li>" + this.title + "</li>"; 
    }); 
    $("ul").append(lis); 
    $("ul li:last").addClass("horizontal"); 
    
    +0

    Не должно быть 'lis + ="

  • "+ this.title +"
  • ";' Только последний li имеет «горизонтальный» класс. –

    +0

    @Rocket - Я вижу вашу точку зрения, спасибо за это, исправлено. – karim79

    1
    $.each(data, function (url) { 
        $("ul").append($("<li class='horizontal'></li>").html(this.title)); 
    }); 
    
    $("ul li:last").addClass("last"); 
    
    Смежные вопросы