- 締切済み
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> ---
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
var elements = document.getElementsByName("test") って、testというnameのタグがなくてもnullにはならないみたいですね。 なのでif(elements)は意味がないかもしれません。 if(document.getElementsByName)とかでチェックするなら別ですが・・・ elements.lengthはヒットしたタグの数ですから、 存在すると1以上の数値が変えるため、ifで拾うことができます
- notnot
- ベストアンサー率47% (4900/10359)
>if(elements && elements.length) 冗長に書くと、 if(elements!=null && elements.length!=0) ということです。 document.getElementsByNmaeとの組み合わせで言うと、name属性がtestであるタグが一つ以上見つかればということ。
お礼
なるほど! if文の中身について、デフォルトが配列の場合はnullではないこと、配列の長さは0ではないことと解釈するんですね。 おかげさまで説明がつきそうです、どうもありがとうございました!