有人可以帮我解决“if else声明”,我对这个剧本有问题:
$('div#wrapper div.teamwrapper:odd').addClass('odd');
$('div.teamwrapper').each(function(index){
if($('div.teamwrapper').hasClass('odd')){
$(this).css('top', index*35);
}else{
$(this).css('top', index*28);
}
});
我的问题是,上面的脚本只执行“if语句”中的参数。它将“if语句”中的参数应用于所有“div.teamwrapper”,即使该对象没有“奇数”类。感谢。
答案 0 :(得分:3)
$('div#wrapper div.teamwrapper:odd').addClass('odd');
$('div.teamwrapper').each(function(index){
if($(this).hasClass('odd')){
$(this).css('top', index*35);
}else{
$(this).css('top', index*28);
}
});
答案 1 :(得分:1)
应该是
$('div#wrapper div.teamwrapper:odd').addClass('odd');
$('div.teamwrapper').each(function(index){
if($(this).hasClass('odd')){
$(this).css('top', index*35);
}else{
$(this).css('top', index*28);
}
});
答案 2 :(得分:1)
通过函数
中的this
访问对象
$('div.teamwrapper').each(function(index){
if($(this).hasClass('odd')){
$(this).css('top', index*35);
}else{
$(this).css('top', index*28);
}
});
答案 3 :(得分:1)
你可以试试这个
将$('div.teamwrapper').hasClass('odd')
替换为$(this).hasClass('odd')
这似乎比你所写的更符合逻辑。
答案 4 :(得分:1)
在这种情况下,最简单的方法是使用带有设置值的函数的css方法。你可以阅读它in the jQuery doc。
$('div#wrapper div.teamwrapper:odd').addClass('odd');
$('div.teamwrapper').css('top', function(index, value){
if ($(this).hasClass('odd')) {
return index*35;
} else {
return index*28;
}
});
如果您真的想使用每种方法,请按以下方式执行:
$('div.teamwrapper').each(function(index){
var $me=$(this);
if($me.hasClass('odd')){
$me.css('top', index*35);
}else{
$me.css('top', index*28);
}
});
您应该先将$(this)
的值保存到变量(如$me
)中,然后再使用该变量,这样可以节省一些资源,并且无论如何都可以保存良好的编程习惯。