2017-08-16 2 views
1

J'essaie de sélectionner un parent (avec un nom de classe spécifique) d'un élément contenant un certain attribut.JQuery cacher le plus proche avec le nom de classe ne fonctionne pas

Voici comment le fichier HTML ressemble

<li class="parentClass..."> 
    <div class="..."> 
    <div class="..."> 
     <div class="..."> 
     <h3 class="..."> 
      <a title="..."> 
     <div class="..."> 
      <a href="/user/userName"...></a> 

Voici mon JQuery (dans un fichier JS)

$("a[href~='/user/userName']").closest("li[class^='parentClass']").hide() 

Alors, quand je lance ce ne se passe rien. Si je console.log() la requête il imprime un

[pevObject: r.fn.init(0)]

Cependant, si je lance la commande de la console dans Chrome je reçois une erreur:

Uncaught TypeError: $(...).closest(...).hide is not a function

Pour vous sauver un certain temps, oui quand je supprime la fonction hide() exécutez-le à partir de la console, il imprime un élément (que je peux cacher manuellement en utilisant le chrome)

EDIT: miss fixe correspond citations

+1

@RoryMcCrossan Désolé, il fixe, ne copie pas correctement – whateverMan99

+1

où le code devrait fonctionner tout à fait bien. Êtes-vous sûr que le code HTML que vous avez affiché correspond exactement à ce qui se trouve sur votre page? –

+0

Eh bien, je ne reçois aucune erreur mais l'élément ne se cache pas du tout – whateverMan99

Répondre

0

$('button').click(function(){ 
 
    $("a[href~='/user/userName']").closest(".parentClass").toggle() 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="parentClass"> 
 
    <div class="..."> 
 
    <div class="..."> 
 
     <div class="..."> 
 
     <h3 class="..."> 
 
      <a title="..."> 
 
     <div class="..."> 
 
      <a href="/user/userName">link</a> 
 
     </div> 
 
     </a> 
 
     </h3> 
 
     </div> 
 
     </div> 
 
     </div> 
 
     </li> 
 
<button>Toggle</button>