2

localStorageで数値を取得しようとしましたが、++は他の方法でそれを実行しませんか?

window.localStorage.setItem('run','++')

これは完全なコードです

<script type="text/javascript">
    if(window.localStorage.getItem('run')==null){

        window.localStorage.setItem('run','1')
    }
    else if(window.localStorage.getItem('run')==1){

        window.localStorage.setItem('run','++')
        window.location = "index_aerosoft.html";
    }
    else if(window.localStorage.getItem('run')==25){

        alert("hey 25times");
        window.localStorage.setItem('run','null')
    };
</script>
4

3 に答える 3

3

localStorage文字列のみが含まれます。

カウンターを保持したい場合は、それを解析する必要があります:

var c = parseInt(localStorage['run']||'0', 10); // read, with 0 as default value
c++; // increment
localStorage['run'] = c; // store the incremented value
于 2013-01-23T09:46:23.560 に答える
1

ローカル ストレージには文字列のみが格納されていました。また、引数を式に解析してその場で値をインクリメントすることはできません。これは手動で行う必要があります。

したがって、最初に値を取得して整数に解析する必要があります。

i = parseInt(window.localStorage.getItem('run'));

次に、インクリメントされた値を保存できます。

window.localStorage.setItem('run',(i + 1));

注:あなたの状態で

else if(window.localStorage.getItem('run')==1){

aが格納されているかどうかを確認します。値が25 より小さい1かどうかを確認するためにインデントすると思いますか? そうでない場合、次のステートメントは常に 2 を格納するため、値を増やしても意味がありません...

于 2013-01-23T09:51:47.560 に答える
0

if(window.localStorage.getItem('run')==null){

        window.localStorage.setItem('run','1');
        alert("First start");
    }else if(window.localStorage.getItem('run')==10){

        window.localStorage.setItem('run','1');
    }else{

        var run = window.localStorage.getItem('run');
        var irun;
        irun = (parseInt(run) + 1);
        window.localStorage.setItem('run',irun.toString());
        window.location = "index_xyz.html";
        alert(window.localStorage.getItem('run'));
    }

</script>
于 2013-01-23T10:15:57.383 に答える