Antworten:
$(this).siblings().hide();
$("table.tr").not(this).hide();
Nebenbei denke ich, Sie meinen $("table tr")
(mit einem Leerzeichen anstelle eines Punktes).
So wie Sie es haben, wählt es jede Tabelle aus, die eine Klasse von tr
(z. B. <table class="tr">
) hat, was wahrscheinlich nicht das ist, was Sie wollen.
Weitere Informationen finden Sie in der Dokumentation .
$('tr').not($(this).closest('tr')).hide();
Wenn Sie not () mit einigen anderen Selektoren kombinieren möchten, können Sie add () verwenden:
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
Dies würde alle anderen Links außer dem angeklickten ausblenden und zusätzlich einige ausgewählte IDs und Klassen ausblenden.
Ich denke, eine Lösung kann folgende sein:
$("table.tr").click(function() {
$("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
--EDIT für Kommentar:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
:not(#" + ...
. Dies funktioniert auch nur, wenn das Element eine ID hat, was unwahrscheinlich ist.