2016-07-14 70 views
1

我有跨度设置,其中一些class =“active”。我需要所有具有活动类的span 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

其工作完全是我想要的。感谢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>