0

数値文字列を数値に変換しようとしていて、その値を増やしたい (または減らしたい) ため、最後に元の場所 (スパン内) に書き戻す必要があります。しかし、parseInt を試すと、常に NaN が返されます。

        var like_value = "0";
    if (navigator.userAgent.indexOf("Firefox") != -1)//firefox
        like_value = document.getElementById('mySpan').innerHTML;
    else
        like_value = document.getElementById('mySpan').innerText;

    like_value = like_value.substring(1, like_value.length - 1);
    var real_number = parseInt(like_value, 10);
    real_number++;
    alert(real_number);//it displays NaN !!!
    if (navigator.userAgent.indexOf("Firefox") != -1)//firefox
        document.getElementById('mySpan').innerHTML = real_number;
    else
        like_value = document.getElementById('mySpan').innerText = real_number;

部分文字列に問題があるはずです。もちろん、期待どおりの結果が得られますが、int に正しく変換できない可能性があります。

4

2 に答える 2

1

" (11)"部分文字列操作の前にある場合"(11"は、最初と最後の文字が削除されるため、後になります。

これは NaN として解析されます。

問題は、文字列の周りにスペースや改行を入れる理由が考えられるということです。

次のように文字列をきれいにすることをお勧めします。

var like_value = document.getElementById('mySpan').innerHTML;
like_value = like_value.replace(/[\n\r\t\(\)]/g,); // this also remove the parenthesis
var real_number = parseInt(like_value, 10);
于 2012-07-20T13:00:42.390 に答える
1

あなたのlike_valueが何であるかを印刷しようとしています。文字列を数値に変換できない場合は NaN が返されるため、文字列に何か問題がある可能性があります

于 2012-07-20T12:54:29.083 に答える