0

secという名前のテキストボックス内に時間を表示するためにJavaScriptのカウントダウン関数を使用しています

前と次の 2 つのボタンがあります 前のボタンを押すと 10 の数字を差し引き、次のボタンをクリックすると 10 の数字を追加します秒の値が56で前のボタンをクリックすると、マイナスの値は46になりますが、40を変更する必要があります。次のボタンのように、秒の値が46の場合、10の数値が追加されて56になりますが、私は60 これからどうすればいいの?ここに私のスクリプトがあります

<script type="text/javascript">
var t;

function countdown()
{
    $('#sec').val(parseInt($('#sec').val()) + 1);
    t = setTimeout("countdown();",1000);
    sec = document.getElementById('sec');
    if($('#sec').val()>=1 && $('#sec').val()<10)    {$('.thought').load('somefile.php?limit=0');    }
    else if($('#sec').val()>=10 && $('#sec').val()<20){$('.thought').load('somefile.php?limit=1');}
    else if($('#sec').val()>=20 && $('#sec').val()<30){$('.thought').load('somefile.php?limit=2');}
    else if($('#sec').val()>=30 && $('#sec').val()<40){$('.thought').load('somefile.php?limit=3');}
}

$(document).ready(function(){
    countdown();
    $('.thought_prev_btn').click(function(){
        var second = Math.floor(parseInt($('#sec').val()) - 10);
        $('#sec').val(second);
     });
});
</script>

私はmath.floor()関数を使用しましたが、それは小数値でのみ機能します

4

1 に答える 1

1

floorおよびceilを単位以外の精度で使用するには、関連する 10 の累乗で割り、その後再度乗算します。私はこれらのヘルパー関数を使用するのが好きです:

function floor(num,power) {
    var p = Math.pow(10,power||0);
    return Math.floor(num/p)*p;
}

function ceilMath.ceilの代わりにを使用するだけで似ていMath.floorます。

次に、たとえば を呼び出すと、floor(123,1)が得られます120
floor(12345,3)戻り12000ます。
floor(12.345,-1)戻ります12.3

基本的に、2 番目の引数は、数値が切り捨てられるべき小数点の左側の桁数です。

于 2013-03-06T07:51:10.170 に答える