2012-07-10 57 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/