
プログラミング言語技術開発環境/ツール
~jQuery~便利なハック
【jQuery】 複数条件をまとめて指定するスマートな書き方
1. jQuery で複数条件をまとめて指定するスマートな書き方
こんにちは。
今回は jQuery の複数条件指定 について、「知っているとコードがスッキリする」小ネタを紹介します。
2. よくある書き方
たとえば、特定のルート要素内にある .form-group の直下の input と select を両方取得したい場合、つい次のように別々に書いてしまいがちです。
/* $(jquery_body).children(".form-group").children("input")
$(jquery_body).children(".form-group").children("select")*/
しかし、このように書いてしまうと今回であれば「.form-group」の箇所が冗長になってしまい、変更に弱く可読性も低いです。
3. よりスマートな書き方
実は、jQuery のセレクタはカンマ区切りで複数指定することができます。
この機能を利用することで、上記コードの冗長な個所を排除しより以下のようにスマートに記述することができます。
/* $(jquery_body).children(".form-group").children("input, select") */
このように、同じ階層にある複数の要素を同時に指定したい場合は、引数として渡す文字列内の要素をカンマでつなぐことによって実現することができます。
4. おまけ
こちらは今回の状況では活躍しませんでしたが、上記と似た書き方で同じ処理を以下のように記載することもできます。
/* $(jquery_body)
.children(".form-group")
.children("input")
.add($(jquery_body).children(".form-group").children("select")); */
今回は「.form-group」が同一なのでこのような書き方はしませんが、全く別の要素を複数同時に選択したい場合はこのように記述することができます。
また、カンマ区切りはこのように記載することもできます。
/* $(".form-group input, .form-group select, .form-group textarea") */
5. まとめ
同じ階層の複数要素を同時に選択したい場合は、文字列内でカンマ区切りすることによってスマートに選択できます。










