1

アヤックスをやっています。ある時点で、somepropertyid によって選択された DOM オブジェクトに割り当て (それが であると仮定します12345)、次を使用して値が割り当てられたことを確認しますalert()

window.document.getElementById('12345').someproperty = true;
alert(window.document.getElementById('12345').someproperty);

この時点で、アラートは正しく表示されますtrue。その後、ある時点でsomeproperty、オブジェクトの値を検索する JavaScript コマンドを呼び出します。

alert(window.document.getElementById('12345').someproperty);

今回は を示していますundefined。値が定義されていないのはなぜですか?

4

1 に答える 1

1

.innerHTMLのルックアップの合間にどこかで厄介なことをしているように感じます.someproperty

に割り当てると.innerHTML、現在の DOM が破棄され、指定した HTML 文字列を解析して取得される新しい DOM に置き換えられます。したがって、セクション全体を破棄し、ほぼ同一の新しいセクションに置き換えていると思います。これにより、元の DOM のステートフルな情報が自然に消去されます。

を使用して完全に消去するのではなく、更新が必要な個々の DOM 要素を変更する必要があります.innerHTML

于 2012-11-21T17:02:25.777 に答える