将类添加到一个特定的li元素

时间:2012-02-16 01:16:02

标签: javascript jquery

我有一个动态创建的无序列表,我需要将一个名为“selected”的类添加到一个特定的-li - 。

-ul-是星期几的列表,需要选择的-li-是当天。不幸的是我无法弄清楚如何将这个类添加到一个元素中,每当我尝试添加这个类时,整个列表就会消失。这是我的代码:

var weekday = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var today = day.getDay();
for(var x=0;x<=6;x++){
    $('ul').append(
        $('<li>')
        .toggleClass(function(){
            if(today == x){ return 'selected'; }
            else{ return ''; };
        });
        .append( $('<a href = "#' + weekday[x].toLowerCase() + '">' + weekday[x] + '</a>'));    
    );      
$('li:last').addClass('last-child');

有人可以帮我弄清楚如何将这个类添加到当天的-li - ?

4 个答案:

答案 0 :(得分:4)

if(today = x)
  • = assign
  • ==比较

另一种方法:

var weekday = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var lis = [];
var today = new Date().getDay();
jQuery.map( weekday, 
    function( day, ind ){
        var cls = ind===today ? " class='selected'" : "";
        lis.push( "<li><a" + cls +" href='#" + day.toLowerCase() + "'>"+ day + "</a></li>" );
    }
);
$("ul").html( lis.join("") );

答案 1 :(得分:2)

根据其他评论的建议并修复一些错误修复了代码:

var weekday = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat'],
    today = new Date().getDay(),
    list = $('ul');

for(var x=0;x<=6;x++){
    list.append(
        $('<li></li>', {
            html : '<a href = "#' + weekday[x].toLowerCase() + '">' + weekday[x] + '</a>'
        }).toggleClass(function(){
            if(today == x){
                return 'selected';
            }
        }).bind('click', function(e){
            e.preventDefault();
            $(this).parent().children('li').removeClass('selected');
            $(this).addClass('selected');
        })
    );
}

$('li:last').addClass('last-child');

答案 2 :(得分:1)

是否将日期定义为新日期?

var day = new Date();

或var today = new Date()。getDay();

答案 3 :(得分:1)

试试:

var weekday = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
var d = new Date(); 
var today = d.getDay(); 

for(var x=0;x<=6;x++){     
    $('ul').append(         
        $('<li><a href = "#' + weekday[x].toLowerCase() + '">' + weekday[x] + '</a>')
    );      

    $('li:last-child').addClass('last-child');

    if(x == today)
    {   
        $('li:gt('+(x - 1)+')').toggleClass('selected');
    }
}
相关问题