Відповіді:
$(this).siblings().hide();
$("table.tr").not(this).hide();
Як сторону, я думаю, ви маєте на увазі $("table tr")
(з пробілом замість крапки).
Як ви це маєте, він вибирає кожну таблицю з класом tr
(наприклад,<table class="tr">
), який, мабуть, не є тим, що ви хочете.
Для отримання додаткової інформації дивіться документацію .
$('tr').not($(this).closest('tr')).hide();
Якщо ви хочете поєднати не () з деякими іншими селекторами, ви можете використовувати add ():
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
Це призведе до вимикання всіх інших посилань, окрім натиснутого, та ще й вимкнення деяких обраних ідентифікаторів та класів.
Я думаю, що рішенням може бути таке:
$("table.tr").click(function() {
$("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
--EDIT для коментаря:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
:not(#" + ...
. Крім того, це не буде працювати, якщо елемент не має ідентифікатора, що малоймовірно.