Respostas:
$(this).siblings().hide();
$("table.tr").not(this).hide();
Como um aparte, eu acho que você quer dizer $("table tr")
(com um espaço em vez de um ponto).
Do jeito que você fez, ele seleciona todas as tabelas que possuem uma classe de tr
(por exemplo, <table class="tr">
), que provavelmente não é o que você deseja.
Para obter mais informações, consulte a documentação .
$('tr').not($(this).closest('tr')).hide();
Se você deseja combinar not () com alguns outros seletores, você pode usar add ():
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
Isso faria desaparecer todos os outros links, exceto aquele clicado e, adicionalmente, desapareceria alguns ids e classes escolhidos.
Acho que uma solução pode ser esta:
$("table.tr").click(function() {
$("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
- EDIT para comentário:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
:not(#" + ...
. Além disso, isso não funcionará a menos que o elemento tenha um ID, o que é improvável.