2009-12-28 3 views
0

Dans l'exemple ci-dessous, je suis en train de comprendre comment cacher le fieldset si le texte dans les balises = GroupesComment puis-je trouver et masquer les parents d'éléments avec un contenu de texte donné en utilisant jQuery?

<fieldset class=" collapsible"> 
<legend class="collapse-processed"><a href="#">Groups</a></legend> 

J'ai essayé, mais, il serpente cacher tous les fieldsets, pas seulement celui-ci ...

$(this).find('legend').each(function() { 
    if($(this).text('Groups')) { 
     $(this).parent().hide(); 
    } 
}); 

Répondre

4

Voici votre problème:

if ($(this).text('Groups')) 

ce ne modifie que le texte de chaque légende être "Groupes". Et renvoie un objet jQuery (qui évaluera à true). Vous voulez probablement quelque chose comme,

if ($(this).text() == 'Groups') 
    $(this).parent().hide(); 

Si vous pouvez garantir que les légendes que vous souhaitez cacher sont les seuls contenant le mot « Groupes », vous pourriez simplifier encore:

$("fieldset:has(legend:contains('Groups'))").hide(); 

... qui sélectionnera uniquement les champs contenant un élément légende qui à son tour contient la séquence de caractères "Groupes".

+0

Ahh ... Merci. Apprendre encore la syntaxe, donc je l'apprécie vraiment. – phpN00b