ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「console.log()」がライブ オブジェクトの一貫性のない子要素数を表示するのはなぜですか?
Console.log 内のライブ参照の識別
JavaScript では、console.log() はスナップショットの代わりにオブジェクトへのライブ参照を表示します。 。要素の Children プロパティによって報告される子要素の数が、展開されたビューでレンダリングされる要素の数と矛盾する場合、混乱が生じる可能性があります。
ライブ参照について
場合console.log() を使用してオブジェクトをログに記録すると、コンソールはそのオブジェクトへのライブ参照にアクセスします。これは、ロギング後にオブジェクトに加えられた変更は、コンソールで展開するときに反映されることを意味します。
例
次のコードを考えてみましょう:
const element1 = document.getElementById('element1'); console.log(element1.children); // Initially shows length: 0 setTimeout(() => { element1.children[0].appendChild(element1.children[1]); console.log(element1.children); // Now shows length: 1 (but 3 expanded elements) }, 1000);
この例では、要素に 3 つの子要素があるにもかかわらず、最初のログは element1.children の長さが 0 であると報告します。ただし、1 秒の遅延の後、子要素が移動され、展開されたビューには 3 つの要素が表示されますが、ログでは長さは 1 のままです。
解像度
この問題を解決するには:
子要素が動的に設定される場合は、子要素と対話する前に、レンダリングされるまで待つことを検討してください。
以上がJavaScript で「console.log()」がライブ オブジェクトの一貫性のない子要素数を表示するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。