2

私のスクリプトには 2 つの関数があります。最初の関数は div 要素を参照し、div 内に段落要素を作成し、この段落要素にテキストを追加します。私の 2 番目の関数は、link 要素にアタッチされた onclick イベントによってトリガーされます。リンクをクリックしたときに、div 内のテキストを別のテキストに変更したい。これを達成するには2つのオプションがあることを認識しています。

1) グローバル変数を宣言し、2 番目の関数で使用します。2) 最初の関数から 2 番目の関数に変数値を渡し、2 番目の関数からこの値を操作します。

しかし問題は、変数値を最初の関数から 2 番目の関数に正しく渡す方法です。

コードは次のとおりです。

<a href=''onclick='change();return false;'>Change</a>
<div id='box'></div>

Javascript:

window.onload= function createEl(){
    var el = document.createElement('p');
    var x = document.getElementById('box');
    var text = 'text';

    el.appendChild(document.createTextNode(text));
    x.appendChild(el);
}

function change(){
    x.innerHTML="other text";
}
4

2 に答える 2

1

一般に、これを書くことができます:

function one(){
   var var1 = "hello";
   two(var1);
}

function two(x){
   alert(x);
}

これは「こんにちは」と警告します。

于 2012-05-14T13:54:49.197 に答える
0

あなたがしていることについては、変数を渡しやすくするために、コードを介してイベントを登録します。イベント処理関数で引数を使用して、データを渡します。

window.onload = function()
{
    // do your normal stuff with creating elements
    var anc = document.getElementById('ID of your a element here');
    if(anc.attachEvent)
    {
        //code for ancient IE
        anc.attachEvent('onclick', function(){change(x);});
    }
    else if(anc.addEventListener)
    {
        //code for modern browsers
        anc.addEventListener('click', function(){change(x);});
    }
}
function change(elem)
{
    elem.innerHTML='other text';
}

上記のifブロックに見られるように、古いバージョンのIEはaddEventListenerを認識せず、代わりにattachEventを使用することに注意してください。addEventListenerのドキュメントは次のとおりです。

于 2012-05-14T14:05:44.430 に答える