皆さんと経験を共有したいだけです。だから私の問題は、javascript バックエンド オブジェクトを HTML フロントエンド要素にバインドするという問題に遭遇したことでした。今、私はグーグルで検索し、この問題に関するいくつかのスタックオーバーフローの記事を読みました。これに対する多くの投稿の回答はjQuery.data()を使用することですが、最初の試みでは、jQuery について知らなかったことがあったため、成功しませんでした。オブジェクトの作成方法。私の問題は、これを保存したスコープ外に保存されたデータを取得したかったことでした.jQuery( 'selectorID')を書くと、jQueryは常に新しいオブジェクト参照を返します。たとえば、次のようになります。
var ref1 = $('#myID');
var ref2 = $('#myID');
if(ref1 == ref2)
{
alert(true);
}
else
{
alert(false);
}
常に false を警告します。ただし、jQuery メソッドを JavaScript の組み込みgetElementById()に置き換えると、同じ参照が得られます。したがって、次のコードは常に true を警告します!
var ref1 = document.getElementById("myID");
var ref2 = document.getElementById("myID");
if(ref1 == ref2)
{
alert(true);
}
else
{
alert(false);
}
私の話のちょっとした教訓は、 javascript オブジェクトを HTML 要素にグローバルにバインドしたい場合、jQuery の data() メソッドの使用を考えている場合は、javascript の組み込みgetElementById()によって返される参照にデータを保存することです。そうすれば、getElementByIDを使用して参照をどこから取得しても、常に同じ参照が取得され、jQuery の data() メソッドを使用してそこからデータを取得できます。
私の質問:
- 私の思考の論理は大丈夫ですか?
- JavaScriptオブジェクトをHTML要素にグローバルにバインドするより良い方法はありますか?