2013-02-08 142 views
4

我有一些像下面的html。我已經循環了div(accordionContents)中的所有元素。在循環內我需要檢查一個條件,如果元素h2應用了兩個css類(acc_trigger和active)或不。我該怎麼做?如何檢查元素是否在jQuery中有多個CSS類

<div id="accordionContents"> 
    <div class="accordioncontainer">   
        <h2 class="acc_trigger active"> 
         <a href="#"> <img class="openImage" src="Images/closed.png"> 
          <div class="openHeader">Division : <b>Quality Assurance</b>(4 items)</div></a></h2> 
        <div class="acc_container" style="display: block;"> 
         <div class="dataRowTeam"> 
          <div class="riskStartContent"> 
           <div class="riskGridHeader"> 
            weekStart</div> 
          </div> 
          <div class="riskEndContent"> 
           <div class="riskGridHeader"> 
            90%</div> 
          </div> 
         </div> 
        </div> 

       </div> 
       <div class="accordioncontainer"> 


        <h2 class="acc_trigger"> 
         <a href="#"> <img class="openImage" src="Images/closed.png"> 
         <div class="openHeader">Division : <b>Quality Assurance</b>(4 items)</div></a></h2> 
        <div class="acc_container" style="display: none;"> 
         <div class="dataRowTeam"> 
          <div class="riskStartContent"> 
           <div class="riskGridHeader"> 
            weekStart</div> 
          </div> 
          <div class="riskEndContent"> 
           <div class="riskGridHeader"> 
            90%</div> 
          </div> 
         </div> 
        </div> 

       </div> 
</div> 
+1

請發佈包含您的循環的jQuery代碼。 – 2013-02-08 11:29:26

+0

我沒有寫這個代碼。因爲我不知道如何檢查該條件 – JEMI 2013-02-08 11:41:14

回答

4

在特定情況下,這應該是很不夠:

var hasActive = $('.acc_trigger').hasClass("active"); // Bool. TRUE/FALSE 

if(hasActive){ 
    // do something if TRUE 
} 

否則,你可以直接去元素存在

$('.acc_trigger.active').css({background: 'red'}); 

LIVE DEMO

順便說一句,你的HTML格式很不尋常,我寧願說錯:
DIV(塊級元素)不應在A(內聯)元素中找到

+0

檢查後我怎樣才能應用一個CSS到一個img標籤只有h2元素有兩個css類? – JEMI 2013-02-08 11:51:13

+0

@JEMI我在回答中給你看了。在我需要應用CSS的循環內添加了演示 – 2013-02-08 11:53:31

+0

。例如Inside the accordion Content div有多個手風琴集裝箱div.Inside這個div有h2 element.this h2元素有多個css我只能將css應用於img標籤。 – JEMI 2013-02-08 12:21:07

0

只是試着問hasClass不止一次;)

$(".accordionContents").each(function(){ 
    var $headline = $("h2", this).first(); 
    var hasBothCSSClasses = $headline.hasClass('acc_trigger') & $headline.hasClass('active'); 
}); 
+1

你可以在'hasClass()'E.g.中放置多個類。 '.Class('acc_trigger active')':http://jsfiddle.net/wU8FJ/ – Joonas 2013-02-08 11:44:16

+0

檢查後如何將CSS應用於該容器中的圖像標籤只有h2有兩個css類? – JEMI 2013-02-08 11:55:10

+0

多數民衆贊成在easy,只需調用.addClass()在找到的圖像 'if(hasBothCSSClasses)$(「img」,this).addClass('myspecialClass');' – FibreFoX 2013-02-08 12:01:03

0

試試這個:http://jsfiddle.net/jH8RF/1/

var clslen = $('h2').attr('class').split(' ').join(','); 
var len = clslen.indexOf(','); 

if(len > 0){ 
    alert('elem has more than one class'); 
}else{ 
    alert('elem has just one class'); 
} 
0

試試這個:

$('.accordionContents h2').each(function() { 
    if ($(this).is('.acc_trigger.active')) { 
     // do something... 
    }) 
}); 
0
var strValue = $("h2").prop('class').trim(); 
if(strValue.indexOf(" ") > -1) 
{ 
    //This element has multiple classes. 
} 
else 
{ 
    //This element has a single class. 
} 
相關問題