2011-09-20 35 views
0

我有一個功能,所以說,我有一個列表:一旦值增量的數字停止工作

  1. 1,2,3,4,5,6,7,8,9

和如果我點擊說數字3,數字3被刪除,所有大於這個值的值將被一個拿走,所以它最終會看起來像這樣:

  1. 1,2,3,4,5 ,6,7,8

唯一的問題是,一旦我們開始進入十分之一的功能只是例如不工作,如果我有:

  1. 8,9,10,11,12,13

它的意思樣子好像我會像9:

  1. 8,9,10,11,12

,但它是這樣THI S:

  1. 8,10,11,12

完全ignorning一旦我們得到兩位數....繼承人我有什麼:

$("button").each(function(){ 
    if (pad2(cl_on)<pad2($(this).val())){ 
     $(this).val($(this).val()-1); 
    } 

});

我確實有這個打算高達99,但一旦我去到100起同樣的問題resurects,這是函數I必須解決它高達99修復......

功能襯墊2105(數){ 回報(數量< 10「0」:「」)+號}

一定有什麼不對的,甚至不必使用這一功能...有人可以幫助我,所以我沒有這問題再次說,如果我達到1000或10000?

+0

你說:「如果我點擊說數字3所有大於這個值的值將被拿走」,但是當然如果你點擊3,你將會留下列表'1,2,3' ?但是你剩下的很多數字大於3? – Alex

+0

*我有一個功能,所以說我有一個列表*什麼? *如果我點擊說數字3所有值較大(...)將被帶走*那麼爲什麼只有9被刪除?你的問題不清楚。但從我看到的是,你比較字符串而不是數字,''10'''''但'2'10',這似乎是你的問題。 –

+0

所以3號被移除,然後所有大於3的值被1奪走......對不起! – Welsho

回答

0

菲利克斯說了什麼,或者使用parseInt()來實現相同;

$("button").each(function(){ 
    if (parseInt(cl_on, 10) < parseInt($(this).val(), 10)){ 
     $(this).val(parseInt($(this).val(), 10) - 1); 
    } 
1

將字符串轉換爲數字,例如,使用一元+。您還可以簡化您的代碼:

$("button").val(function(i, val) { 
    return +cl_on < +val ? val - 1 : val; 
}); 

正如我所說的在我的評論,你是比較字符串,詞彙順序,102例如前(?)。