4
function result()
{
    var a, b, c;
    a = 10;
    b = 20;
    c = a+b;
    document.write("The result of a+b is" + c);
}

<input type="button" value="Result" onclick=result();>

私は JavaScript が初めてで、段階的に学習しています。上記の例を試してみましたが、正常に動作していますが、ボタンをクリックした後、同じウィンドウに結果が表示されません。

innerHTML を使用する必要がありますか? でもどうやって使えばいいのかわからない。そして、innerHTML を使用することはプログラミングに適していますか?

4

7 に答える 7

3

document.writeは、現在ロードされているページがない限り、常に新しいページを開始します。現在のページの読み込みが完了すると、document.writeステートメントは、現在のWebページではなく、表示される次のWebページに書き込みます。これは、そのページが既に書き込まれているためです。

このようなDOMメソッドを使用します:

<script type="text/javascript">

    function result()
    {
        var a, b, c;
        a = 10;
        b = 20;
        c = a+b;
        document.getElementById('foo').innerHTML = "The result of a+b is" + c;
        return false
    }

</script>
<span id="foo"></span>
<input type="button" value="Result" onclick="return result();">
于 2012-10-19T09:35:44.403 に答える
1

ページの読み込みが完了する前に document.write() を呼び出す必要があります。そうしないと、新しいページが開きます(ヘルプについては、このリンクを参照してください)。おそらくそれが問題です

あなたは次のようなことをしたいかもしれません

function result()
{
    var a, b, c;
    a = 10;
    b = 20;
    c = a+b;
    var content = document.getElementById('result_div').innerHTML; 
    content += "The result is ..." ;
}
于 2012-10-19T09:32:12.507 に答える
0

試す

function result()
{
    var a, b, c;
    a = 10;
    b = 20;
    c = a+b;
    var result = "The result of a+b is" + c;
    document.body.appendChild(document.createTextNode(result));
    document.body.appendChild(document.createElement("br"));
}

この方法では、結果データを保持するために追加のノードを作成する必要はありません。

于 2012-10-19T10:01:55.827 に答える
0

デバッグ目的の場合は を使用しconsole.log(value)、それ以外の場合は値を に保存しますinnerHTML

console.log("The result of a+b is" + c);
alert("The result of a+b is" + c); // For very old  browsers.

innerHTMLプロパティを使用して:

document.getElementById('{id}').innerHTML = "The result of a+b is" + c;
于 2012-10-19T09:30:37.263 に答える
0

このコードを試してください

function result()
{
    var a, b, c;
    a = 10;
    b = 20;
    c = a+b;
    console.log("The result of a+b is" + c);
}
于 2012-10-19T09:32:03.720 に答える
0

これにより、ドキュメント全体を上書きすることなく、別の要素に結果が書き込まれます。

<script type="text/javascript">

    function result()
    {
        var a, b, c;
        a = 10;
        b = 20;
        c = a+b;
        var result = document.getElementById("result");
        result.innerHTML = "The result of a+b is" + c;    
    }

</script>

<input type="button" value="Result" onclick=result();>
​&lt;div id="result"></div>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

http://jsfiddle.net/AcTM2/を参照

于 2012-10-19T09:33:38.993 に答える
0

メソッドの結果を変更します。

function result()
{
var a, b, c;
a = 10;
b = 20;
c = a+b;
document.getElementById('result').innerHTML="The result of a+b is" + c;
}

そして、ボディに id の結果を持つ div を入れます:

<div id="result"></div>
于 2012-10-19T09:34:16.550 に答える