0

この関数の結果をグローバル変数に代入する方法がわかりません。これは本当に基本的なことだと思いますが、誰か助けてもらえますか?

var pixel_code = null


function captureValue(){
  pixel_code = document.getElementById("baseText").value;
 return pixel_code;
}

pixel_code = captureValue();
4

4 に答える 4

0

関数の内外でpixel_codeを再利用していますが、これは優れたパターンではありませんが、表示するコードは期待どおりに機能するはずです。どのようなエラーが発生していますか?表示していないこのコードを囲むコードは何ですか?これはすべて、おそらく別の関数内にネストできますか?(うなずいてくれてありがとう@JosephSilver。)

于 2013-01-20T05:20:14.530 に答える
0

ページがリロードされると、変数は初期状態にリセットされます。

于 2013-01-20T05:20:58.977 に答える
0

これを試してください、

var pixel_code='';

function captureValue(){
  return document.getElementById("baseText").value;
}

function getValueBack()
{
    pixel_code = captureValue();
    //alert(pixel_code); /* <----- uncomment to test -----<< */
}
于 2013-01-20T05:48:43.120 に答える
0

あなたが試みていたことのjsfiddleを共有してくれてありがとう。私は懸念を参照してください。captureValue() 関数は非同期で実行されるため、console.log()定義直後はまだ値がありません。私はjsfiddleを剥ぎ取って突き刺し、この作業サンプルを思いつきました:

<html>
    <head>
    </head>
    <body>
    <h1>Welcome to the AdRoll SandBox</h1>

    <textarea id="baseText" style="width:400px;height:200px"></textarea><br />

    <input type="button" value="test" id="text_box_button" onclick="captureValue()"/>
    <input type="button" value="get" id="text_box_button2" onclick="getValue()"/>
    <script>
var pixel_code = null;

function captureValue(){
    pixel_code = document.getElementById("baseText").value;
    return false;
}

function getValue() {
    alert(pixel_code);
    return false;
}
    </script>
    </body>
</html>

2 つ目のボタンを追加しました。テキストボックスに入力し、「test」を押して (値を設定)、「get」を押してグローバル変数の値を取得します。

グローバル変数を回避するために jQuery とクロージャーを使用する同じサンプルを次に示します。

<html>
    <head>
    </head>
    <body>
    <h1>Welcome to the AdRoll SandBox</h1>

    <textarea id="baseText" style="width:400px;height:200px"></textarea><br />

    <input type="button" value="test" id="text_box_button" />
    <input type="button" value="get" id="text_box_button2" />
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script>
$(document).ready(function () {
    var pixel_code = null;

    $("#text_box_button").click(function (){
        pixel_code = document.getElementById("baseText").value;
        return false;
    });

    $("#text_box_button2").click(function () {
        alert(pixel_code);
        return false;
    });
});
    </script>
    </body>
</html>
于 2013-01-20T06:14:22.057 に答える