if()else()语句问题......:/

时间:2011-03-09 09:44:25

标签: jquery if-statement

有人可以帮我解决“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”,即使该对象没有“奇数”类。感谢。

5 个答案:

答案 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)中,然后再使用该变量,这样可以节省一些资源,并且无论如何都可以保存良好的编程习惯。