0
$('.row').slice(0, 3).css('background-color: green');
$('.row').slice(4, 6).css('background-color: yellow');
$('.row').slice(6, 10).css('background-color: green');

または

x = 0;
$('.row').each(function() {
   if (x >= 0 && x <= 3) {
      $(this).css('background-color: green');
   }
   if (x >= 4 && x <= 6) {
      $(this).css('background-color: yellow');
   }
   if (x >= 6 && x <= 10) {
      $(this).css('background-color: green');
   }
   x++;
});

一方は他方より速いですか?

4

2 に答える 2

4

スライスを使用します。それぞれが反復ごとに比較を行います。Slice は列のみを取得します。さらに、スライスは意図をより適切に表現します。これにより、最適化が改善され (存在する場合)、コードがより読みやすくなります。

于 2012-05-10T22:38:43.037 に答える
0

あなたの例を正確に使用し、主にパフォーマンスを考慮して、純粋な css ソリューションはおそらくさらに高速です。

.row:nth-child(-n+10) { background-color: green; }
.row:nth-child(-n+6)  { background-color: yellow; }
.row:nth-child(-n+3)  { background-color: green; }

順序が逆に見えますが、最初に上位 10 項目の 10 項目すべてが緑色になり、次に上位 6 項目が黄色になり、次に上位 3 項目が再び緑色になります。

ただし、これは静的 html でのみ機能します。選択を動的に変更する場合は、実際に jquery.slice を使用してください。

于 2013-07-10T15:37:03.890 に答える