4

div 内のクラス .test を持つ要素の数を数えようとしています。私は持っている

<div id='testDiv'>ddd 
   <div class='test'> 111<div> another div </div></div>
   <div class='test'> 222</div>
   <div class='test'> 333</div>
   more...
</div>

私のjQuery:

if($('#testDiv.test').length>5){
   alert('haha');
}

クラス名 test で正しい div 数を取得できないようです。

4

6 に答える 6

5

セレクターを次のように変更します。

$('#testDiv .test').length

spaceと の間#testDivに を入れ.testます。

$('#testDiv .test')#testDivを持つ人の直接の子供を見つけますclass=test

完全なコード:

if( $('#testDiv .test').length > 5 ){
   alert('haha');
}

ノート

$('#testDiv.test')id=testDivは、とclass=testlike の両方を持つ要素を選択していることを意味します<div id="testDiv" class="test"></div>

于 2012-09-10T16:40:39.570 に答える
4

#testDivと の間にスペースを追加してみてください.test

$('#testDiv .test').length

あなたが持っているものは以下のようなものです、

$('#testDiv.test') //- element with ID testDiv and class test  
//<div id="testDiv" class="test">...</div>
于 2012-09-10T16:40:45.950 に答える
3

testDiv のIDとのクラスを持つ要素を検索しています。testたとえば、

<div id="testDiv" class="test">

あなたが必要

$('#testDiv .test")
           ^--- note the space

代わりは。スペースがあると、id が testDiv のノードの子であるクラスが「test」のすべてのノードになります。

于 2012-09-10T16:41:55.890 に答える
1

こんにちは私は3つのケースを書いています:

方法 1: .test が #testdiv の直接の子である場合

これでは、.children を使用する必要があります

例えば:

$("#testdiv").children(".test")

これにより、クラス「test」を持つ要素の配列が得られます。javascript では、配列のサイズを見つけるために length プロパティを使用します。したがって、 $("#testdiv").children(".test").length があなたの仕事をします。

方法 2: 同様に、#testdiv で 'test' クラスを持つすべての要素を検索するには、.findコールバックを使用できます。このアプローチは、最適化されていないため、「.test」要素のネストされたレベルがわからない場合に使用する必要があります。例: $("#testdiv").find(".test") これにより、要素の配列が得られます。同じもの .length を使用して、配列のサイズを見つけます。

方法 3: 以下 を使用して試すこともできます。

$("#testdiv .test")

これは method:2 と同じように機能しますが、最適化されていません。

あなたの間違い: 次の構文を使用しようとしました

$("#testdiv.test")

このセレクターは、クラスが「test」で ID が「testdiv」の要素を提供します。

ありがとう

于 2012-09-10T17:14:44.113 に答える
1
  • $('#testDiv .test") This will count all immediate descendants--if it's a child of a child, you will not count it.
  • $('#testDiv').find('.test') or simply $('#testDiv, .test') will find ALL descendants.
于 2012-09-10T17:02:11.343 に答える
1

試す:

$('#testDiv').children('.test').length;
于 2012-09-10T16:41:15.227 に答える