2010-12-03 3 views
20

J'ai une table pour laquelle j'essaie de sélectionner toutes les lignes qui ont un td contenant le texte 'Test', puis cachez le td avec la classe 'ms-vb -icon » sur toutes les lignes assortiesJQuery sélectionner toutes les lignes contenant un certain texte dans un td dans la ligne

Je intitally eu le code ci-dessous mais cela ne cachons la classe sur la dernière ligne adaptée

$("td:contains('test'):last").parent().children(".ms-vb-icon").css("visibility","hidden"); 

donc j'ai essayé cela, mais ca marche pas ...

$("tr:has(td:contains('test')").each(function(){ 
    (this).children(".ms-vb-icon").css("visibility","hidden"); 
    }); 

look html simplifié comme ceci:

<table> 
<tbody> 
<tr> 
<td class=ms-vb-icon></td> 
<td></td> 
<td></td> 
<td></td> 
<td></td> 
<td>test</td> 
</tr> 
</tbody> 
<table> 
+1

Pourquoi ne pas supprimer simplement ': last' de votre code d'origine? – sje397

Répondre

31
référer fonction $(this)

Essayez:

$("tr td:contains('test')").each(function(){ 
    $(this).siblings('td.ms-vb-icon').css("visibility","hidden"); 
}); 

Démo here.

+0

Merci Cela fonctionne très bien pas sûr de savoir quelle est la différence entre les frères et sœurs et les enfants, mais cela fait l'affaire! – van

+0

lire le frère jquery doc et il a du sens – van

+2

Les enfants viennent d'appartenir sous le td, donc le td est le parent.Les frères et sœurs appartiennent à côté du td , donc c'est un autre td dans le même tr – Malachi

6

Essayez avec

$("tr:has(td:contains('test')").each(function(){ 
    $(this).parent().children(".ms-vb-icon").css("visibility","hidden"); 
}); 

La classe .ms-vb-icon est un enfant du tr alors que le la td

+0

bon endroit mais toujours ne fonctionne pas – van

+0

s'il vous plaît noter que j'ai également ajouté une fermeture '" 'avant la chaque fonction.En tout cas pouvez-vous s'il vous plaît poster un exemple de balisage? – Lorenzo

+0

S'il vous plaît jeter un oeil à ma réponse modifier – Lorenzo

8

Je suppose que vous manque ')' .Il a fonctionné pour moi:

$("tr:has(td:contains('1'))").each(function() { 
Questions connexes