ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で「onclick='clear()'」が機能しないのはなぜですか?

JavaScript で「onclick='clear()'」が機能しないのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 21:12:121009ブラウズ

Why Doesn't `onclick=

onclick="clear()" が機能しない: JavaScript の障害を理解する

基本的な電卓を作成しようとすると、不可解な問題に遭遇します。 onclick="clear()" 属性が割り当てられた「」ボタンが、テキストをクリアするという意図した機能を実行できません。

謎は、onclick などの JavaScript の組み込みイベント属性の中にあります。これらの属性では with ステートメントを使用しますが、混乱と互換性の問題が発生する可能性があるため、この方法はお勧めできません。その結果、onclick="clear()" 属性により、意図したグローバル関数 clear() ではなく document.clear() が誤って呼び出されます。

この問題を解決するには、clear 関数の名前を変更するか、ウィンドウを明示的に呼び出します。クリア()。ただし、より優れた解決策は、イベント バインディングに addEventListener を使用し、組み込みイベント属性の使用を回避することです。

次のコード サンプルは、addEventListener を使用した適切な実装を示しています。

<script>
  const clearButton = document.querySelector('input[value="C"]');
  clearButton.addEventListener('click', clear);

  function clear() {
    document.getElementById("field").value = "";
  }
</script>

以上がJavaScript で「onclick='clear()'」が機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。