質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

104閲覧

updateTable()について

zawber

総合スコア6

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2024/10/22 06:55

単語帳を作っているのですが
クリックしたら64行目のupdateTable()で行が追加されますよね。
では、86行目のupdateTable()はどういう役割ですか?
よろしくお願いします。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>単語帳</title> 7</head> 8<body> 9 <h1>単語帳</h1> 10 <input type="text" placeholder="単語"> 11 <input type="text" placeholder="意味"> 12 <button id="btn">登録</button> 13 <p id="total">全0件</p> 14 <table id="table"></table> 15 16 17 <script> 18 'use strict'; 19 20 //文書が読み込み終わったら処理を実行 21 window.onload = () => { 22 class Word { 23 //コンストラクター 24 constructor(en,ja) { 25 this.en = en; 26 this.ja = ja; 27 } 28 29 //メソッド 30 showInfo() { 31 return `<td>${this.en}</td><td>${this.ja}</td>`; 32 } 33 } 34 35 //input要素をNodeListとして取得 36 const inputs = document.querySelectorAll('input'); 37 //セレクタをもとに要素を取得 38 const btn = document.querySelector('#btn'); 39 const total = document.querySelector('#total'); 40 const table = document.querySelector('#table'); 41 42 //空の配列を準備 43 let list = []; 44 45 //btnにクリックイベントを登録 46 btn.addEventListener('click', () => { 47 // 入力値を取得(前後についた無駄なスペースを除去) 48 const enValue = inputs[0].value.trim(); 49 const jaValue = inputs[1].value.trim(); 50 51 if (enValue === '' || jaValue === '') { 52 alert('単語と意味を両方入力してください。'); 53 return; // 入力が不正な場合は処理を中断 54 } 55 56 //Wordインスタンスを作成 57 let word = new Word(enValue, jaValue); 58 //インスタンスを配列に追加 59 list.push(word); 60 //すべてのinput要素を空欄にする 61 inputs.forEach((input) => { 62 input.value = ''; 63 }); 64 updateTable(); 65 }); 66 67 function updateTable() { 68 //見出し行を作成 69 table.innerHTML = '<tr><th>単語</th><th>意味</th></tr>'; 70 71 //配列から1件1件取り出しながら処理を行う(取り出した1件をwordとして扱う) 72 list.forEach((word) => { 73 //tr要素を作成 74 let tr = document.createElement('tr'); 75 //trの子要素をhtmlが含まれた文字列で設定 76 tr.innerHTML = word.showInfo(); 77 //table要素の子要素として作成したtr要素を追加 78 table.appendChild(tr); 79 }); 80 81 //total要素のテキストコンテントを設定 82 total.textContent = `${list.length}`; 83 } 84 85 86 updateTable(); 87 }; 88 </script> 89 90</body> 91</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

juner

2024/10/22 07:01

ステップ実行したらわかると思われますが、 初回実行ではないでしょうか?
zawber

2024/10/22 23:54

ステップ実行いうのがあるんですね。やってみよう
guest

回答1

0

ベストアンサー

単純にwindowのload時に1回updateTable()を実行し、意図としてはテーブルの初期化をしたいのだと思います

投稿2024/10/22 07:14

yambejp

総合スコア116250

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.39%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問