按降序排序编号,不带0

时间:2012-07-10 12:47:56

标签: javascript jquery

我需要按降序编号,但当它达到0时,数字应变为9 ..

例如,假设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/

感谢您的协助。

4 个答案:

答案 0 :(得分:5)

试试这个:

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

DEMO

答案 1 :(得分: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);
});​

答案 2 :(得分:1)

清洁剂:

var num = 2;
$("span").each(function(idx) {
    $(this).text(((num - idx) % 9 + 9) % 9 || 9);
});

答案 3 :(得分: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/