1

特定のクラスを含む div の数を正確にカウントする方法について、少し混乱しています。ここに DOM があるため、カウントを開始する場所と停止する場所を特定する方法を見つけない限り、.parent()or.child().lengthand を使用することはできません。.size()

<div class="container">
      <h2 class="12345">title<h2>
      <div class="_row">...</div>
      <div class="_row">...</div>
      <div class="_row">...</div>
      <h2 class="6789">title<h2>
      <div class="_row">...</div>   //count these
      <div class="_row">...</div>   //count these
      <div class="_row">...</div>   //count these
      <div class="_row">...</div>   //count these
      <div class="_row">...</div>   //count these
      <div class="_row">...</div>   //count these
      <h2 class="01234">title<h2>
      <div class="_row">...</div>
      <div class="_row">...</div>
      <div class="_row">...</div>
      <div class="_row">...</div>
      <div class="_row">...</div>
   </div>

したがって、関数に 6789 が渡された場合、「.6789」の後にクラス「_row」を含む div のカウントが必要になりますが、次の でカウントを停止します<h2>

それらは DOM の同じレベルにあるため、私はここでちょっと迷っています。だから私にはできない$('.6789' > '._row')$('.6789').parent().find('._row); 、誰かが私が必要とする正確な数を得るのを手伝ってくれるなら、それは大歓迎です

4

2 に答える 2

7

jQuery の nextUntil() 関数を使用します。リンクされたページには、探していることをほぼ正確に実行するコード例があります。

于 2012-09-25T18:10:10.880 に答える
0

h2 要素から開始し、次のようにnextUntilを使用して次のすべての div を選択できます。

var countOfDivs = $("h2.6789").nextUntil("h2","div._row").length;

nextUntil の 2 番目の引数は、マークアップが h2 要素の間に div._row 以外の要素を含み始めた場合に、選択が安定していることを保証します。

于 2012-09-25T18:15:31.487 に答える