質問: ### 前提・実現したいこと javascriptでマルバツゲームを作っているのですが、ボタンを9個使って、初期値はスペースで何も表示せず、1回クリックで〇を表示させ、2回目のクリックで×が表示するようになっています。3回目にはアラートがでて、そこには置けないというメッセージを表示させています。 そこでですが、今まではボタンを9個同じものを並べていたのですが、後々の課題で9個別々に識別できるようにする必要があり変数宣言でnewArray(9)を宣言し、「i」で0~8の数字が入るようにしたのですが、どうにもうまくいきません。 ### 発生している問題・エラーメッセージ ``` 2-1.html:15 Uncaught TypeError: Cannot set property 'value' of undefined ``` ### 該当のソースコード ``` ``` ### 試したこと 初期化処理をいろいろ変えてみたり、forで回してみたのですが何時間かけても解決できなかったので質問させていただきました。
回答: 一般的な3x3のマスの○×ゲームだとすれば、親要素で `click` イベントハンドラを監視し、`event.target` で対象の要素ノードを取得するとスマートに書けると思います。 * バブリング dom - Google 検索 また、個人的には任意の数のマス目(4x4、5x5等)の `table` 要素を動的に生成出来るようにすると更に良いと思います。 ※実装例: `createElement`, `createTextNode`, `appendChild`, `insertCell` 等 * Interface HTMLTableRowElement Re: yuuki2016 さん