プロが教える店舗&オフィスのセキュリティ対策術

同じクラス名のついた、子要素の数え方を回答いただければと思います。
1. li タグ が 5つあるので、そのような出力にしたいのです。
2. 各 ul の li タグの数を出すには、どのようにすればよいのでしょうか ?
どうぞ、皆様よろしくおねがいいたいします。

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
</head>

<body>

<ul class="myClass">
<li>1</li>
<li>2</li>
</ul>

<ul class="myClass">
<li>3</li>
<li>4</li>
<li>5</li>
</ul>

<script>

try {

var chiledNodes = [];

function userFunc( parent ) {

chiledNodes = document.querySelector( parent ).children;

alert ( chiledNodes.length );

}

} catch( e ) {
alert( e );
}

userFunc( '.myClass' );
</script>

</body>
</html>

A 回答 (2件)

UL要素の一覧を取り、個々にLI要素を勘定し、結果を配列とする簡単なやり方



var 結果 = [].map.call(
 document.querySelectorAll('ul.myClass'),
 function(ul){return ul.querySelectorAll('li').length}
);
// 質問の HTML を対象に実行すれば、結果 = [2, 3]

余談ではありますが、以下の関数は間違いやすいのでご注意ください
document.querySelector() - 該当する最初の一件だけをとる
document.querySelectorAll() - 該当する全てをとる
    • good
    • 0
この回答へのお礼

サンプルコードをふくめていただき、回答ありがとうございました。
配列から配列を取る感じですね。良い参考になりました。

お礼日時:2013/12/02 18:09

1)ドキュメント内のUL要素を洗い出す


2)それぞれについて指定クラスを持つか判別
3)該当する各UL内のLI要素数を調べる

みたいな考え方でどうでしょうか?
    • good
    • 0
この回答へのお礼

上記の回答と同じような感じでしょうか。
回答いただき、ありがとうございました。

お礼日時:2013/12/02 18:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!