Titre avancé, question simple:
Comment puis-je effectuer les opérations suivantes dans jQuery (masquer tout sauf $(this)
)?
$("table tr").click(function() {
$("table tr:not(" + $(this) + ")").hide();
// $(this) is only to illustrate my problem
$("table tr").show();
});
$(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).
Comme vous l'avez, il sélectionne chaque table ayant une classe de tr
(par exemple, <table class="tr">
), Ce qui n'est probablement pas ce que vous voulez.
Pour plus d'informations, voir le documentation .
Si vous voulez 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, sauf celui qui avait été cliqué, ainsi que certains identifiants et classes choisis.
Je pense qu'une solution peut être ceci:
$("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();
})