2012-07-10 55 views
1

我需要按降序排列,使數字,但是當它到達0,這個數字應該變成9 ..通過按降序排序數字,沒有0

例如,讓說num是2,順序應該是2, 1, 9, 8, 7, 6, 5, 4, 3

var num = 2; 
$(function() { 
     $(".one").html(num); 
     $(".two").html((num-1)%9); 
     $(".three").html((num-2)%9); 
     $(".four").html((num-3)%9); 
     $(".five").html((num-4)%9); 
     $(".six").html((num-5)%9); 
     $(".seven").html((num-6)%9); 
     $(".eight").html((num-7)%9); 
     $(".nine").html((num-8)%9); 
});​ 

但在代碼中有0和負數,我該如何克服?

http://jsfiddle.net/yqGV7/

謝謝您的幫助。

+0

這不是排序,它是遞減的,並且可以非常容易地使用if語句檢查num爲0的循環來完成。 – Thor84no 2012-07-10 12:51:23

回答

5

試試這個:

var num = 3; 
$(function() { 
    $('span').each(function(i){ 
     num--; 
     if (num == 0) { 
      num = 9; 
     } 
     $(this).text(num) 
    }) 
}); 

DEMO

1

不乾淨的代碼,但會做你在說什麼:

var num = 2; 
num = num + 9; 
$(function() { 
    $(".one").html(num % 9 || 9); 
    $(".two").html((num-1)%9 || 9); 
    $(".three").html((num-2)%9 || 9); 
    $(".four").html((num-3)%9 || 9); 
    $(".five").html((num-4)%9 || 9); 
    $(".six").html((num-5)%9 || 9); 
    $(".seven").html((num-6)%9 || 9); 
    $(".eight").html((num-7)%9 || 9); 
    $(".nine").html((num-8)%9 || 9); 
});​ 
1

清潔:

var num = 2; 
$("span").each(function(idx) { 
    $(this).text(((num - idx) % 9 + 9) % 9 || 9); 
}); 
1
var num = 2; 
var max = 9; 
$(".one, .two, .three, .four, .five, .six, .seven, .eight, .nine").each(function(i,e){ 
    if(num>i) { 
    $(e).html(num-i); 
    } else { 
    $(e).html(max-(i-num)); 
    } 
}); 

這是小提琴:http://jsfiddle.net/yqGV7/6/