0

<div>それぞれにいくつの要素があるかを知る必要があります<li>。だからそのようなもの:

<ul>
   <li>
      <div> Some image 1 </div>
      <div> Some image 2 </div>
      <div> Some image 3 </div>
   </li>
   <li>
      <div> Some image 4 </div>
      <div> Some image 5 </div>
   </li>
   <li>
      <div> Some image 6 </div>
      <div> Some image 7 </div>
      <div> Some image 8 </div>
      <div> Some image 9 </div>
   </li>
</ul>

関数の出力:

First <li> has 3 <div>
Second <li> has 2 <div>
Third <li> has 4 <div>
4

4 に答える 4

6
var lengths = $('li').map(function(){
    return $(this).find('div').length;
}).get();

ライブデモ

コメント:

// Make an array when the input for every iteration is a <li>
$('li').map(

// Every element in the array is the amount <div>s inside the current <li>
    return $(this).find('div').length;

// Produce the arry.
.get();

必要なものに似たものを簡単に作成したい場合:

$('li').each(function() {
    var length = $(this).find('div').length;
    $('<div> ' + length + ' li has ' + length + 'divs </div>').appendTo('#output');
});​

ライブデモ

出力:

3 li has 3divs
2 li has 2divs
4 li has 4divs
于 2012-06-21T13:36:08.117 に答える
2

<li>,を表す jQuery オブジェクトが与えられた場合、次のようにするだけで、含まれているitemの数を確認できます。<div>

item.find('div').length

しかし、その正確な出力を持つ関数が必要な場合は、数値→英語のライブラリが必要になります。または、ちょうど 3 つある場合は、<ul>asを取得して次のようlistにします。

var items = list.find('li');

'First <li> has ' + items.eq(0).find('div').length + ' <div>';
'Second <li> has ' + items.eq(1).find('div').length + ' <div>';
'Third <li> has ' + items.eq(2).find('div').length + ' <div>';
于 2012-06-21T13:36:20.353 に答える
1
$('li').each(function(i){
    console.log('<li> ' + i + ' has ' + $(this).children('div').length + 'divs');
});
于 2012-06-21T13:37:42.457 に答える
1
$('li').each(function() {
    console.log($('div', this).length);
});​

jsFiddle の例

于 2012-06-21T13:37:07.130 に答える