Câu trả lời:
$(this).siblings().hide();
$("table.tr").not(this).hide();
Ngoài ra, tôi nghĩ ý bạn là $("table tr")
(với dấu cách thay vì dấu chấm).
Theo cách bạn có, nó chọn mọi bảng có lớp tr
(ví dụ <table class="tr">
:), có thể không phải là thứ bạn muốn.
Để biết thêm thông tin, hãy xem tài liệu .
$('tr').not($(this).closest('tr')).hide();
Nếu bạn muốn kết hợp not () với một số bộ chọn khác, bạn có thể sử dụng add ():
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
Điều này sẽ làm mờ tất cả các liên kết khác, nhưng liên kết được nhấp và cũng làm mờ một số id và lớp đã chọn.
Tôi nghĩ một giải pháp có thể là:
$("table.tr").click(function() {
$("table.tr:not(" + $(this).attr("id") + "").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
--EDIT cho nhận xét:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})
:not(#" + ...
. Ngoài ra, điều này sẽ không hoạt động trừ khi phần tử có ID, điều này khó xảy ra.