Réponses:
$(this).siblings().hide();
$("table.tr").not(this).hide();
En passant, je pense que vous voulez dire $("table tr")
(avec un espace au lieu d'un point).
De la façon dont vous l'avez, il sélectionne chaque table qui a une classe de tr
(par exemple, <table class="tr">
), ce qui n'est probablement pas ce que vous voulez.
Pour plus d'informations, consultez la documentation .
$('tr').not($(this).closest('tr')).hide();
Si vous souhaitez combiner not () avec d'autres sélecteurs, vous pouvez utiliser add ():
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
Cela ferait disparaître tous les autres liens, à l'exception de celui sur lequel vous avez cliqué, et supprimerait également certains identifiants et classes choisis.
Je pense qu'une solution peut être la suivante:
$("table.tr").click(function() {
$("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
--EDIT pour commentaire:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
:not(#" + ...
. De plus, cela ne fonctionnera que si l'élément a un ID, ce qui est peu probable.