2017-10-05 7 views
2

Peut-être que je comprends mal, mais cela ne devrait pas() travailler dans cette situation? Qu'est-ce que je fais mal?jQuery a() ne fonctionne pas comme prévu

$("#count").on("click", function(){ 
    $(".item").each(function(index, element){ 
     $(element).text(index + 1); 

     /*** this line does nothing ****/ 
     $(element).has(".special").css("background", "black"); 

     if(index + 1 == 4 || index + 1 == 8){ 
     $(this).css("background", "#A5C663"); 
     } 
    }) 
    }) 

HTML:

<div id="grid"> 
    <div class="item"></div> 
    <div class="item special"></div> 
    <div class="item"></div> 
    <div class="item"></div> 
    <div class="item special"></div> 
    <div class="item"></div> 
    </div> 

Ce ne fonctionne pas non plus:

$(this).has(".special").css("background", "black"); 

Ou:

$(".item).has(".special").css("background", "black"); 

Répondre

2

Remplacer le has avec is.

  • is est sur cet ensemble d'éléments
  • has est sur les descendants
+0

Je comprends. Cela fonctionne par exemple j'ajoute un paragraphe avec la classe de "special" dans ".item". Je vous remercie. Accepter quand ça me le permet. – Sergi