2016-07-14 6 views
1

私はスパンセットを持っていて、それらのいくつかはclass = "active"です。アクティブクラスを持つすべてのスパンIDが必要です。また、アクティブクラスも持つ他のタグもあります。複数のスパンIDを検出するにはclass = "active"で、ボタンが押された場合

<div id="myDiv"> 
<span id="sp1" class="active"></span> 
<span id="sp2"></span> 
<span id="sp3" class="active"></span> 
<span id="sp4"></span> 
<span id="sp5"></span> 

</div> 

私は次のスクリプトを試しましたが、動作しません。

var IDs = []; 
     $('#myDiv').find('span').hasClass('active').each(function(){ 
         IDs.push(this.id); 

     }); 

はありがとうございました!

答えて

5

.hasClass()は、あなたが持っているコードが動作していないという理由でブール値を返します。代わりに、次のようなことをすることができます:

var IDs = $('#myDiv').find('span.active').map(function() { return this.id; }).get(); 
+0

ITSは、私が欲しいと全く働いています。ありがとうbillyonecan :) – Kani

1

これで試してみてください!

var IDs = []; 
 
$('#myDiv').find('span.active').each(function() { 
 
    IDs.push($(this).attr('id')); 
 
}); 
 
console.log(IDs);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="myDiv"> 
 
    <span id="sp1" class="active"></span> 
 
    <span id="sp2"></span> 
 
    <span id="sp3" class="active"></span> 
 
    <span id="sp4"></span> 
 
    <span id="sp5"></span> 
 
</div>

関連する問題