2011-01-11 59 views
0

我有此代码用于将每个行从奇数更改为偶数。我想它做的是去偶偶奇奇,而不是偶奇偶奇:更改每2行而不是每个表行

window.addEvent('domready', function() { 

var count = 0; 

$$('table.pretty-table tr').each(function(el) { 

el.addClass(count++ % 2 == 0 ? 'odd' : 'even'); 

}); 

}); 

回答

1

不需要一个变种数量也

window.addEvent('domready', function() { 
    $$('table.pretty-table tr').each(function(el, idx) { 
     el.addClass(idx % 4 > 1 ? 'odd' : 'even'); 
    }); 
}); 

PS的:只要优化The Scrum Meister的答案。

5
el.addClass(count++ % 4 > 1 ? 'odd' : 'even'); 
+0

MooTools-way将使用选择器引擎 - Slick。 – 2011-01-11 09:40:36

+0

为什么downvote? – 2011-01-11 18:08:57

+0

感谢您的帮助! – MSD 2011-01-11 19:56:01

0
window.addEvent('domready', function() { 

    var count = 0; 

    $$('table.pretty-table tr').each(function(el) { 
     if (count == 0 || count % 4 < 2) { 
      el.addClass('odd'); 
     } 
     else 
     { 
      el.addClass('even'); 
     } 
    }); 
    count++; 
}); 
2

你可以使用光滑。

$$("table.pretty-table tr:nth-child(4n), table.pretty-table tr:nth-child(4n-1)").addClass("even"); 

简单。 http://www.w3.org/TR/css3-selectors/#structural-pseudos

在行动

http://www.jsfiddle.net/dimitar/mdtVB/5/

顺便说一句,这让我想知道如果使用光滑将会比。每个循环,所以我做了一个小测试类快:

http://www.jsfiddle.net/dimitar/mdtVB/6/

光滑运行第一对于10000次迭代和加载后10秒,它也会运行每个。在一个窗口框中的FF 3.6.12中,光滑的赢了,但稍微。通过#id调用表格会对Slick - http://www.jsfiddle.net/dimitar/mdtVB/8/有所帮助(在测试开始正确运行jsfiddle之前,延迟时间为2秒)。

相关问题