【2026年7月最新】HTMLのonclick属性でクリック処理をする完全ガイド|addEventListenerとの使い分けとClaude Code活用

【2026年7月最新】HTMLのonclick属性でクリック処理をする完全ガイド|addEventListenerとの使い分けとClaude Code活用

Webページのボタンをクリックしたら何かが起きる。この仕組みを作るのがonclick属性です。「ボタンを押したらアラートを表示」「クリックで要素の色を変える」「フォームを送信したいが先にバリデーションしたい」——こうした動作はすべてonclickから始まります。

この記事ではHTMLのonclick属性の基本書き方から、関数の定義と呼び出し、this参照、addEventListenerとの使い分け、フォームとの組み合わせ、Claude Codeを使ったコード自動生成まで実例コードとともに解説します。

代表菅澤 代表菅澤
onclick属性はHTMLタグに直接書けるため、JavaScriptの入門として最初に覚える人が多いです。ただし、規模が大きくなるにつれてaddEventListenerへの移行を検討する理由も理解しておくことが大切です。
✔️onclick属性の基本構文と直接JavaScriptを書く方法
✔️関数を定義してonclickから呼び出す書き方
✔️thisでクリックした要素自身を取得する方法
✔️複数の関数をonclickから実行する書き方
✔️onclick属性とaddEventListenerの使い分けと選択基準
✔️フォームsubmitでのpreventDefaultの正しい使い方
✔️よくあるエラー(関数が見つからない・二重実行)の原因と対策
✔️Claude Codeでonclick処理コードを自動生成する方法
📌 この記事の結論
【2026年7月最新】HTMLのonclick属性でクリック処理をする完全ガイド|addEventListenerとの使い分けとClaude Code活用
HTMLのonclick属性を完全解説。クリック時に関数を呼び出す基本から、インライン記述の問題点、addEventListenerとの使い分け、thisでクリックされた要素を取得する方法、複数関数の実行、フォームのsubmitとpreventDefault、Claude Codeでのコード自動生成まで実例付きで解説。

01 onclick属性の基本と書き方 HTMLタグにonclickを書いてJavaScriptを実行する

📚 用語解説

onclick属性:HTMLタグに設定するイベントハンドラー属性。ユーザーがその要素をクリック(マウスボタンを押して離す)したときに、属性値として指定したJavaScriptコードを実行する。button・a・div・span・imgなどほぼすべてのHTML要素に設定できる。値として直接JavaScriptの式を書くか、事前に定義した関数名を書く。例: onclick="alert('Hello')" または onclick="myFunction()"。













クリックリンク


このdivをクリックすると背景色が変わります
💡 onclick属性値にはJavaScript式を書く

onclick属性の値は文字列ですが、JavaScriptとして実行されます。クォートには注意が必要です。onclick属性値自体をダブルクォート(")で囲んでいる場合、JavaScriptの文字列はシングルクォート('')を使います。逆に属性値をシングルクォートで囲む場合は内部にダブルクォートを使えます。

ユーザーがクリック
マウスボタンを
押して離す
ブラウザがonclick属性を読む
属性値をJavaScript
として実行
JavaScriptコード実行
アラート表示・
DOM変更など
画面が更新される
ユーザーに
フィードバック

02 関数を定義してonclickから呼び出す HTMLとJavaScriptを分離して管理しやすいコードにする




  
  onclick関数呼び出し



  
  

  
  

  
  

  

AI鬼管理山崎 AI鬼管理山崎
onclick属性に直接長いJavaScriptを書くとHTMLが読みにくくなります。処理が2行以上になる場合は関数を定義してonclick="functionName()"と呼び出す形に分離すると、HTMLはボタンの定義・JavaScriptは処理ロジックと責務が分かれて保守しやすくなります。
書き方メリットデメリット
onclick="alert('Hello')"
(直接記述)
手軽・短いコードに向くHTMLが長くなる・再利用不可
onclick="myFunc()"
(関数呼び出し)
再利用可能・HTMLとJSを分離関数定義が必要
addEventListener
(後述)
HTML不変・複数リスナー可JavaScriptの記述量が増える

03 thisでクリックした要素自身を参照する クリックされたボタンのtext・属性・スタイルを取得・変更する

📚 用語解説

thisキーワード(onclick文脈):onclick属性の値(JavaScriptコード)の中でthisを使うと、その属性が設定されたHTML要素(クリックされた要素自身)を参照できる。例: onclick="this.style.color='red'"とすると、クリックした要素の文字色が赤になる。関数に渡す場合はonclick="changeStyle(this)"とthisを引数として渡す。なお、onclick属性から関数を呼び出した場合に関数内でthisを使うと異なるオブジェクトを指すことがあるため、this参照が必要な場合は引数として渡すのが確実。
















このカードを閉じる

04 複数の関数をonclickから実行する セミコロン区切りと組み合わせ関数の2パターン










代表菅澤 代表菅澤
onclick属性に長い処理をセミコロンで並べるより、1つのラッパー関数にまとめてonclick="handleXxx(this)"と呼ぶほうが断然おすすめです。処理の追加・削除・順序変更がJavaScript側だけで完結し、HTMLを触らずに済みます。

05 addEventListenerとの使い分け onclick属性とaddEventListenerを選ぶ判断基準

📚 用語解説

addEventListener:JavaScriptでHTML要素にイベントリスナーを登録するメソッド。element.addEventListener('click', 関数名)のように、第1引数にイベント名('click')、第2引数にコールバック関数を指定する。同一の要素に同じイベントで複数のリスナーを登録できる点がonclick属性と大きく異なる。onClick属性はHTML側からJSを呼ぶのに対し、addEventListenerはJavaScript側から要素を取得してリスナーを追加する(HTML側を変更しない)。











  • アイテム1
  • アイテム2
比較軸onclick属性addEventListener
複数リスナー1つのみ(後書きで上書き)何個でも追加可能
HTMLからの分離HTMLにJSが混在するHTMLを変更せずJSだけで登録
動的生成要素への対応直接設定が必要親要素への委譲が容易
取り外し(removeEventListener)不可(上書きのみ)可能(リスナー関数を渡す)
適した用途小規模・プロトタイプ・1処理のみ中〜大規模・複数リスナー・動的
onclick属性
小規模・1処理
HTMLに直書き
onclick属性+関数
HTMLとJSを分離
再利用性向上
addEventListener
中〜大規模
複数リスナー対応

06 フォームのsubmitとpreventDefaultの組み合わせ クリックでフォーム送信をキャンセルしてバリデーションを行う

📚 用語解説

preventDefault():イベントオブジェクトのメソッド。クリックイベントなどのデフォルト動作(aタグのページ遷移、formのsubmitなど)をキャンセルする。onclick属性内では event.preventDefault() のように使う。onclick属性のreturn false; も同様の効果があるが、addEventListenerと組み合わせる場合はpreventDefault()を使うのが正しい方法。フォームバリデーション(送信前にエラーチェック)や確認ダイアログの実装でよく使われる。






確認してから移動
⚠️ return false と event.preventDefault() の違い

onclick属性でreturn false;を使うとevent.preventDefault()とevent.stopPropagation()の両方が実行されます。aタグのページ遷移やフォームsubmitをキャンセルしたいだけなら return false; または event.preventDefault(); のどちらでも動作しますが、addEventListenerと組み合わせる場合は必ずevent.preventDefault()を使ってください。return false; はaddEventListenerのコールバック内では効果がありません。

07 よくあるエラーとトラブルシューティング onclick属性が動かない原因パターンと対処法

📚 用語解説

イベントバブリング:クリックイベントは発生した要素から親要素・祖先要素へと伝播(バブリング)していく。例えば、div内のbuttonをクリックすると、buttonのonclickが実行された後にdivのonclickも実行される。これが意図しない動作の原因になることがある。伝播を止めるにはevent.stopPropagation()を使う。






  




  
  
  









AI鬼管理山崎 AI鬼管理山崎
「onclick属性を設定したのにクリックしても何も起きない」という場合、まずブラウザのF12開発者ツール→Consoleタブを開いてエラーメッセージを確認してください。「ReferenceError: xxx is not defined」が出ていれば関数名のタイポ、「SyntaxError」が出ていればJSの文法エラーです。

08 Claude CodeでonclickのJavaScript処理を自動生成する 「このボタンを押したら〇〇する」と伝えるだけでコードが完成

📚 用語解説

イベントオブジェクト(Event Object):onclick属性やaddEventListenerのコールバック関数に自動的に渡される引数。click・mousemove・keydownなどのイベント情報を含む。onclick属性のJSコードではeventという名前で参照できる。主なプロパティ: event.target(クリックされた要素)、event.currentTarget(リスナーが設定された要素)、event.clientX/clientY(クリック位置の座標)、event.shiftKey(Shiftキーが押されているか)など。

Claude Codeを使えば、「このボタンをクリックしたら〇〇してほしい」と日本語で伝えるだけで、onclick属性の設定からJavaScript関数の定義まで完成したHTMLコードが生成されます。

やりたいことClaude Codeへの指示例
クリックでメッセージ表示「HTMLのbuttonをクリックしたらアラートで'送信完了!'と表示するonclick処理を書いて。」
トグルボタン「ボタンをクリックするたびにON/OFFの状態が切り替わるトグルボタンをHTMLとJavaScriptで作って。」
フォームバリデーション「名前・メールのフォームで、送信ボタンをクリックしたとき未入力ならエラー表示、入力済みなら送信するバリデーション処理をonclick属性で実装して。」
複数ボタンの排他選択「複数のボタンがあって1つだけ選択状態(背景を青)にする排他的ハイライト処理をaddEventListenerで書いて。」
代表菅澤 代表菅澤
Claude Codeは「onclick属性でいいか、addEventListenerのほうがよいか」という設計の相談にも乗ってくれます。「このページはシンプルなので直接書きたい」「将来的にJSファイルに分離したい」という要件を伝えれば、それぞれの実装方法を提案してくれます。
💡 実践パターン:クリック座標とキーボード修飾キーの取得

onclickのイベントオブジェクトを使うと、クリックした位置の座標(clientX/clientY)やShiftキー・Ctrlキーが押されていたか(shiftKey/ctrlKey)も取得できます。

<div onclick="showClickInfo(event)" style="width:300px;height:150px;border:2px dashed #ccc;cursor:crosshair;display:flex;align-items:center;justify-content:center;">
  クリックしてみてください
</div>
<p id="info" style="font-family:monospace;"></p>

<script>
  function showClickInfo(event) {
    const info = document.getElementById('info');
    info.textContent =
      'X: ' + event.clientX + ', Y: ' + event.clientY +
      ' | Shift: ' + event.shiftKey +
      ' | Ctrl: ' + event.ctrlKey;
  }
</script>

Shiftキーを押しながらクリック(Shift+クリック)で挙動を変えたい場合などに使います。event引数はonclick属性のJSコードで自動的に参照できます。

📚 用語解説

イベント委譲(Event Delegation):個々の子要素にonclickを設定するのではなく、親要素1つにaddEventListenerを設定し、event.targetで実際にクリックされた子要素を判定する設計パターン。動的にli要素が追加されるリストなど、要素が後から増える場合でもリスナーを再登録せずに対応できる。大量の要素に個別にonclickを設定するよりメモリ効率も良い。

09 まとめ:HTMLのonclick属性の重要ポイント 基本・this参照・addEventListener使い分けのポイント整理

✔️onclick属性はほぼすべてのHTML要素に設定でき、クリック時にJavaScriptを実行
✔️onclick属性値内のJavaScriptの文字列はシングルクォート(属性値はダブルクォートで囲む)
✔️関数を定義してonclick="funcName()"で呼び出すとHTMLとJSが分離されて管理しやすい
✔️thisを引数として渡す(onclick="func(this)")とクリックされた要素自身を関数内で操作できる
✔️複数の処理はラッパー関数にまとめてonclick="handleXxx()"と1回呼び出すのが保守しやすい
✔️addEventListenerは複数リスナー・動的要素・HTMLとJSの分離が必要な場合に使う
✔️フォーム送信キャンセルはreturn false;またはevent.preventDefault()
✔️動かない時はまずF12→コンソールでエラーメッセージを確認する

WebページのJS処理をもっとスピードアップしたい方へ

onclick処理に限らず、WebページのインタラクションやフォームバリデーションをClaude Codeで自動生成すると開発速度が大幅に向上します。
AI鬼管理では、Web業務の自動化・効率化についての無料相談を受け付けています。

代表菅澤 代表菅澤
JavaScript処理の実装で「書き方がわからない」「エラーの原因がわからない」という方も、Claude Codeへの指示の出し方を身につければ自力で解決できるようになります。まずお気軽にご相談ください。

NEXT STEP

この記事の内容を、あなたのビジネスで
実践してみませんか?

AI活用を自社で回せるようになりたい方へ

AI鬼管理

Claude Code・Cowork導入支援から業務設計・社内浸透まで実践ベースで伴走。「自社で回せる組織」を90日で作る経営者向けトレーニング。

よくある質問

Q. HTMLのonclick属性の使い方を教えてください。

A. onclick="実行したいJavaScript"という形でHTMLタグに書きます。例: 。関数を呼び出す場合はonclick="functionName()"と書いて、<script>タグ内で関数を定義します。onclick属性はbutton・a・div・spanなどほぼすべてのHTML要素に使えます。

Q. onclickで関数に引数を渡す方法は?

A. onclick="functionName(引数)"のように関数呼び出しに引数を含めます。文字列はシングルクォートで囲みます: onclick="greet('田中')". 数値はそのままonclick="calc(10, 20)". クリックされた要素自身を渡す場合はonclick="func(this)"とthisを使います。

Q. onclickとaddEventListenerはどちらを使うべきですか?

A. 小規模な処理や学習目的ならonclick属性が手軽です。中〜大規模のWebアプリや、同一要素に複数のクリックリスナーが必要な場合、HTMLからJavaScriptを完全に分離したい場合はaddEventListenerが適しています。「scriptをbodyの末尾に置けばDOMが先に読み込まれるのでaddEventListenerでも問題ない」という状況が多いため、規模が大きくなったらaddEventListenerへの移行を検討するとよいでしょう。

Q. onclickでフォームのsubmitをキャンセルするには?

A. submitボタンのonclick属性でreturn false;を使う方法が最もシンプルです: onclick="return validate()". validate()関数の中でreturn false;を返すとフォーム送信がキャンセルされ、return true;を返すと送信されます。addEventListenerを使う場合はevent.preventDefault()で送信をキャンセルします。

Q. onclick属性が動かない・クリックしても何も起きない原因は?

A. 主な原因は4つです。①関数名のタイポ(スペルミス)—コンソールにReferenceErrorが出る ②文字列クォートの衝突—onclick="alert("text")"のようにダブルクォートが衝突している ③scriptタグの位置—headに書いた場合DOMより先に実行されて要素が見つからないことがある(bodyの末尾に置く) ④CSSのpointer-events: none—スタイルでクリックが無効化されている。F12を押してコンソールタブのエラーメッセージを確認するのが最短の診断方法です。

Q. Claude CodeでonclickのJavaScript処理を作ってもらうには?

A. 「どの要素を」「クリックしたら」「何をする」を日本語で伝えるだけで動作するコードが生成されます。例: 「HTMLのボタンをクリックしたら、div#messageにテキストを表示して3秒後に消えるようにするJavaScriptをonclick属性で実装してください。」という形で指示すると、HTML・CSS・JavaScriptがセットで返ってきます。

AIAI鬼管理

AI鬼管理へのお問い合わせ

この記事を読んで気になった方へ。
AI鬼管理の専門スタッフが、御社に最適な
業務自動化プランを無料でご提案します。

会社名を入力してください
業種を選択してください
お名前を入力してください
正しいメールアドレスを入力してください

1つ以上選択してください
1つ以上選択してください
月額コストを選択してください

約1時間のオンライン面談(Google Meet)です

空き枠を取得中...
面談日時を選択してください

予約確定後、Google Calendarの招待メールをお届けします。
しつこい営業は一切ございません。

監修 最終更新日: 2026年7月19日
菅澤孝平
菅澤 孝平 株式会社GENAI 代表取締役
  • AI業務自動化サービス「AI鬼管理」を運営 — Claude Code を活用し、経営者の業務を「AIエージェントに任せる仕組み」へ転換するパーソナルトレーニングを 伴走構築 で提供。日報・採用・問い合わせ対応・経費精算・議事録・データ集計・営業リスト等の定型業務を、AIに代行させる体制を経営者と一緒に作り込む
  • Claude Code 実装ノウハウを 経営者・法人クライアント に直接指導。生成AIを「便利ツール」ではなく 「業務を任せる存在」 として運用する手法を体系化
  • 「やらせ切る管理」メソッドの開発者。シンゲキ株式会社(2021年設立・鬼管理専門塾運営)にて累計3,000名以上の学習者を志望校合格に導いた管理メソッドを、AI × 経営者支援 に転用
  • 著書『3カ月で志望大学に合格できる鬼管理』(幻冬舎)、『親の過干渉こそ、最強の大学受験対策である。』(講談社)
  • メディア出演: REAL VALUE / カンニング竹山のイチバン研究所 / ええじゃないかBiz 他
  • 明治大学政治経済学部卒
現在は AI鬼管理(Claude Code活用の伴走型パーソナルトレーニング)を主事業とし、経営者と二人三脚で「AIに業務を任せる仕組み」を実装。「実行を強制する環境」を AI で構築する手法を、自社の実運用知見をもとに発信している。