我有一个动态创建的无序列表,我需要将一个名为“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 - ?
答案 0 :(得分:4)
if(today = x)
另一种方法:
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');
}
}