• 締切済み

JavaScriptの条件文の記述方法

以下のJavaScriptの条件式で「if(elements && elements.length){」がありますが、この条件式の意味を教えていただけないでしょうか? 始めは間違いかと思いましたが、正常に動作しています。 (HTML中にtestのインプット項目があるため分岐1を通ることになりますが、その理由がわかりません。) -source-------------------------- JavaScript(抜粋) --- function getElements() { var elements = document.getElementsByName("test") if(elements && elements.length){ alert("分岐1"); }else{ alert("分岐2"); } } --- HTML(抜粋) --- <input type="hidden" name="test"> <button onclick="getElements()">getElementsByName('test')</button> ---

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

var elements = document.getElementsByName("test") って、testというnameのタグがなくてもnullにはならないみたいですね。 なのでif(elements)は意味がないかもしれません。 if(document.getElementsByName)とかでチェックするなら別ですが・・・ elements.lengthはヒットしたタグの数ですから、 存在すると1以上の数値が変えるため、ifで拾うことができます

  • notnot
  • ベストアンサー率47% (4900/10359)
回答No.1

>if(elements && elements.length) 冗長に書くと、 if(elements!=null && elements.length!=0) ということです。 document.getElementsByNmaeとの組み合わせで言うと、name属性がtestであるタグが一つ以上見つかればということ。

p20222068
質問者

お礼

なるほど! if文の中身について、デフォルトが配列の場合はnullではないこと、配列の長さは0ではないことと解釈するんですね。 おかげさまで説明がつきそうです、どうもありがとうございました!

関連するQ&A

専門家に質問してみよう