• ベストアンサー

空の要素の文字列を取得するとnullではなくund

空の要素の文字列を取得するとnullではなくundefinedが返ってくるのはなぜでしょうか? var history1Txt = history1.value; また値が入っていてもundefinedが返ってきます。 値が入っている時だけ新しい履歴のテキストを古い履歴にコピーして、常に履歴がサイクルするようにしたいです。 https://codepen.io/anon/pen/MVzRLa

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5084/13286)
回答No.3

> inputの入力欄に入力したテキストもinnerHTMLでないと取得できませんか? inputの入力欄に入力した値はinputタグのvalueプロパティに格納されるのでvalueで取得できます。 inputタグに初期値をセットする場合はvalueプロパティに値を入れると、そのまま画面上の入力欄に表示されるのと同じ理屈です。

その他の回答 (2)

  • t_ohta
  • ベストアンサー率38% (5084/13286)
回答No.2

> pタグのなかに文字列があってもこのタグだけ特別valueプロパティがないということなのでしょうか? <p id="hoge" value="文字列"></p> となっている場合は document.getElementById("hoge").value で値(文字列)が取り出せます。 <p id="hoge">文字列</p> となっている場合は value は undefined となり、document.getElementById("hoge").innerHTML で値(文字列)が取り出せます。

mousugusokoni
質問者

お礼

ありがとうございます。たしかにできました。 valueはvalueプロパティの値を取得するので、htmlでvalueプロパティの値のみを取得してタグの間のテキストは取得できないのですね。 inputの入力欄に入力したテキストもinnerHTMLでないと取得できませんか?

  • t_ohta
  • ベストアンサー率38% (5084/13286)
回答No.1

undefined は変数が定義されていないと言う事です。 <p>タグにはvalueと言うプロパティが存在しないので undefined となっています。

mousugusokoni
質問者

お礼

pタグのなかに文字列があってもこのタグだけ特別valueプロパティがないということなのでしょうか?

関連するQ&A

  • 繰り返し処理をして、要素がいくつあっても、うまくい

    while文で繰り返し処理をして、要素がいくつあっても、うまくいくようにしたいのですが、var inputResultをカプセル化できないのでこのような場合どうすればいいのでしょうか? https://codepen.io/anon/pen/XqOWrQ document.querySelectorAll('.js-myBtn').addEventListener と変更したのですが、このボタンの一つ目を押したら一つ目として実行二つ目以降も同様にとなりません。 イベントを起こすトリガーの要素を配列で指定はできないのでしょうか?

  • JSがうまくいかない

    クリックするたびにポイントが10加算されるようにしたかったのですが、なぜかクリックするとNANになってしまいます。 codepen上ではうまく再現できていないですが、ソースを張っておきました。 https://codepen.io/anon/pen/oWbvEe?editors=0001 またインスペクタで確認してNanだったのですが、codepenはインスペクタのようにソースを見る機能はないのですか?

  • jqueryのthisはイベントが起きている要素?

    jqueryのthisはイベントが起きている要素を示すそうですが、 下記の例の.js-is-input-error1をthisにしても必須項目と出てきません。 こちらの例であればイベントが発生している要素とは、必須項目というテキストが出て来るspanタグがそれに該当する要素ではないのでしょうか? https://codepen.io/anon/pen/VmgPav アニメーションなら動いている要素が、イベントが発生している要素ということでしょうか? イベントが発生している要素というのがどうもはっきりわかりません。 アニメーションなら、(div.anime).animation()ならdiv.animeがイベントが発生している要素ですよね。 (button).click() { (div.anime).animation() } であればbuttonではなくdiv.animationがイベントが起きている要素ですよね?

  • iがクリックごとに増えるようにしたい

    二度目からはvar i = 0;を行わずにiがクリックごとに増えるようにしたいのですが、うまくいきません var firstClick = true; const startBtn = document.getElementById('js'); startBtn.addEventListener('click', ()=> { if(firstClick) { var i = 0; firstClick = false; } ~ stageNumDefault の二度目クリック時に数値が増えていかずNaNになってしまいます。 https://codepen.io/anon/pen/VbPpby に再現しておきました。

  • チェックボックスがすべてfalseになる

    チェックボックスがチェックされているか否かによって 処理をかえたいのですが なぜかチェックをしていてもすべてfalseになってしまいます。 これはチェックしていればtrue、していなければfalseになるはずなんですよね? 一部抜粋しました。 https://codepen.io/anon/pen/jmoLmQ

  • fizzbuzzがうまくいきません

    fizzbuzzがうまくいきません https://codepen.io/anon/pen/mWbvbp?editors=1112 fizzbuzzだけになってしまいます。 つまりあまりが両方ともすっと0になっているようですが、 なぜ1づつ増えて行っていないのでしょうか? インスペクタで見ると3fizと5fizは0になっています。 始めは0割る3はあまりが0なので初めのあまりは0だからでしょうか? するとループ処理の結果どうなっているかというのはインスペクタで見ることはできないのでしょうか?

  • undefinedかnullかどう区別できますか?

    JavaScript の教科書に下記のように記載があったのですが、 >>> ページからアンカータグを取得するgetAnchorという関数があったとします。 その際、アンカータグが見つからなかったならば、何を返すべきでしょうか。undefined(未定義)は不自然です。 今度は「該当する値がなかった(=空であった)」という値を、意図して伝えようとしているので、nullを返すべきです。 関数で値が返されなかった場合はundefinedと聞いたのですが上記はそれに該当するように私は思ってしまうのですが、なぜ違うかわかりますか? 関数で値が返されなかった場合とはalert()のように引数がなかった場合という意味でしょうか? それともretunr 変数名などのreturnがない場合という意味でしょうか?

  • disabledプロパティが存在しないと出てきます

    disabledプロパティが存在しないと出てきます。 下記の部分です・ if(hintBtn.disabled === 'disabled') もう少し全体像は下記です。 https://codepen.io/anon/pen/wjbebe 仕様上disabledプロパティは、初めは存在しないのでしょうか?

  • 空の配列を示す方法

    Flash8を使用して、ActionScript2を書いています。 if文を用いて、「変数my_array(配列)が空の配列でない場合は~」 という条件分岐を書きたいのですが、 空の配列を示す方法がわかりません。 var my_array:Array = new Array(); とした上で、 if (my_array == null) { trace("null"); } else { trace("違う"); } と書いて調べてみたのですが、 nullでもundefinedでも""でも[]でも「違う」と表示されてしまいます。 「空の配列でない場合」という条件を書く方法はあるでしょうか?

    • ベストアンサー
    • Flash
  • .styleがうまくいきません。

    .styleがうまくいきません。 var debu = mathGetClass.style.position = 'fixed'; mathGetClass.style.position = 'top mathRandom + px'; mathGetClass.style.position = 'left mathRandom + px'; console.log(debu); としてもdebuの中身がfixedになってしまいます。 また、複数のCSSを一括指定したい場合は、 連想配列を使うのでしょうか? https://codepen.io/anon/pen/QpKzPR?editors=1111