jQueryで要素の数を取得|divやリストを数える
リストの数を取得して何かする時や、リストにしていなかった要素の数を調べる時に便利なjQueryの記述のご紹介です。
リストの数を取得
<div class="list">
<ul>
<li>いち</li>
<li>に</li>
<li>さん</li>
<li>よん</li>
<li>ご</li>
</ul>
</div>
上記のHTMLのリストの数を取得する場合、下のようなjQueryの記述で取得可能です。
var list = $(".list li").length;
alert(list);
結果は、「5」がアラートします。
「.length」は、「index」とは違い1から数え始めるため、要素の数だけ数字を返してくれます。
divの数を取得
<div class="contents">
<div class="contents__top"></div>
<div class="contents__center1"></div>
<div class="contents__center2"></div>
<div class="contents__bottom"></div>
</div>
リスト化する気が無く作っていいた上記の様なHTMLをリストにしてjsで何らかの処理をする時、
一瞬あれ?ってなるときがあります。
でも、大丈夫。
上と似たような書き方で取得できます。
var contents = $(".contents > div").length;
alert(contents);
結果は「4」がアラートします。
「.contents」の直下のdivだけを取得するため間に「>」を挟んでいます。
また、下記の様な書き方でも同様に、直下のdivだけを取得しています。
var contents = $(".contents").children("div").length;
alert(contents);
どちらの記述でも結果は、「4」がアラートします。
jQueryでは、子要素などを取得できる関数が用意されているので
覚えておくと、ほかの人が書いたコードもすんなり読むことができます。
子要素に色んなタグがあるけど、関係なく数を取得
<div class="ironna-tag">
<p>ピータグ</p>
<a href="">自分のブログ</a>
<span>すぱん</span>
<table>過去の段組み</table>
<div>でぃぶ</div>
<img src="/img/img1.jpg" alt="" />
</div>
上記のようなハチャメチャなHTMLを作ってしまい、さらに「.ironna-tag」の下の要素の数を取得してみる。
結果は、多分下のjsで「6」になると思う。
var ironna-tag = $(".ironna-tag").children().length;
alert(ironna-tag);
自信が無いので実際にHTMLを書いてボタンを押すとアラートしてみる。
// .ironna-tagのHTML
結果をアラートするボタン
できたやん!
「6」がアラートされたやん!
試したことなかったので、ちょっと嬉しかった。
こんな変なHTMLからでも数を取得出来るんだね!
勉強になりました。








コメント