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

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

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

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

HTML

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

Q&A

解決済

2回答

4839閲覧

パスワードの確認チェックの構文の意味について

kokokooooooooo

総合スコア18

JavaScript

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

HTML

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

0グッド

0クリップ

投稿2018/10/15 07:49

編集2018/10/15 08:16

javascript

1/* 2* パスワード一致チェック 3*/ 4function setConfirmMessage(confirm_password) { 5 var password = document.getElementById("password").value; 6 var message = ""; 7 if (password == confirm_password) { 8 message = ""; 9 } else { 10 message = "パスワードが一致しません"; 11 } 12 13 var div = document.getElementById("pass_confirm_message"); 14 if (!div.hasFistChild) {div.appendChild(document.createTextNode(""));} 15 div.firstChild.data = message; 16}

php

1 <p>パスワード 2 <input id="password" type="text" name="password"> 3 </p> 4 <div id="pass_message"></div> 5 <p>パスワード確認 6 <input type="password" name="confirm_password" id="confirm_password" 7 onkeyup="setConfirmMessage(this.value);"> 8 </p> 9 <div id="pass_confirm_message"></div>

わからないこと
このjavascriptがどういった動きをしているのかは、理解しています。しかし、javascriptの中身の10行目if (!div.hasFistChild) {div.appendChild(document.createTextNode(""));}の意味がよくわかっていないです。

やりたいこと
もう少し、簡潔にわかりやすくかける方がいるなら、ご教授をお願いします

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

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

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

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

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

dice142

2018/10/15 07:59

コードの修正依頼は非推奨です。質問文を読むと「あるコードの意味がわからないので教えてほしい」という意味合いに見えるので、タイトルと合っていない気がします。
mdj

2018/10/15 08:09

今風とはなんですか? if文は もしdivがChildを持たないなら、""をcreateして、divにappendChildする です。
guest

回答2

0

ベストアンサー

JavaScript

1 var div = document.getElementById("pass_confirm_message"); 2 if (!div.hasFistChild) {div.appendChild(document.createTextNode(""));} 3 div.firstChild.data = message;

この部分はパスワードチェックの処理とは関係がないです。
チェック後のエラーメッセージを出力する処理をしています。

JavaScript

1 var div = document.getElementById("pass_confirm_message");

↑ここでエラーを出す箇所のDOMを取得しています。

JavaScript

1 if (!div.hasFistChild) {div.appendChild(document.createTextNode(""));}

↑ここで、先程取得したDOMに子要素がなければ、子要素にテキストノードを追加します。

JavaScript

1 div.firstChild.data = message;

↑テキストノードにエラーメッセージを設定します。

こういうことをしています。

投稿2018/10/15 08:28

dice142

総合スコア5158

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

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

0

JavaScript

1// <div></div>だとテキスト表示用のノードがないのでチェックを掛けてなければテキスト表示用のノードを追加する 2if (!div.hasFistChild) { 3 // テキストノード作成する(作っただけなのでどこに表示させるかの関連付けはされてないので下で行う) 4 var _node = document.createTextNode(""); 5 6 // divのところにテキストノードを追加する(これによってdiv.firstChildがかならずある状態になる) 7 div.appendChild(_node); 8} 9 10// 入れるノードがあるのは保証されてるので表示したいメッセージを入れる 11div.firstChild.data = message;

こんな感じかな

https://developer.mozilla.org/ja/docs/Web/API/Document/createTextNode
https://hakuhin.jp/js/text_node.html

投稿2018/10/15 08:05

rururu3

総合スコア5545

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問