1

使った

<div id="myJSDiv"><script>...</script></div>
$("#myJSDiv").html('');

<script id="myJSDiv">...</script>
$("#myJSDiv").remove();

しかし、何も削除されませんでした。

JSスクリプトは

<script id="count_down">
        var ss = 150;
        function countdown() {
            ss = ss-1;
            if (ss<0) {
                window.location="google.com";
            }else {
                document.getElementById("countdown").innerHTML=ss;
                window.setTimeout("countdown()", 1000);
            }
        }
        </script>
4

1 に答える 1

3

スクリプトが読み込まれると、元のスクリプト タグを削除しても、そのスクリプトによって定義または作成された関数や変数には影響しません。

そのようなコード ブロックをロードした後に削除する方法はありません。グローバル関数はロード後に再定義できますが、できることはそれだけです。おそらく、解決しようとしている全体的な問題について説明していただければ、より良いアプローチを提案できるかもしれません。


実際の問題を質問に追加したので、カウントダウン タイマーを停止するには、次のようにします。

 <script id="count_down">
    var ss = 150;
    var countdownTimer;
    function countdown() {
        ss = ss-1;
        if (ss<0) {
            window.location="google.com";
        }else {
            document.getElementById("countdown").innerHTML=ss;
            countdownTimer = window.setTimeout(countdown, 1000);
        }
    }

    function stopCountdown() {
        clearTimeout(countdownTimer);
    }
    </script>

stopCountdown()カウントダウンタイマーを停止したいときに関数を呼び出すだけです。

于 2013-03-17T16:36:05.993 に答える