Ответ 1
$(this).siblings().hide();
Расширенный заголовок, простой вопрос:
Как я могу сделать следующее в jQuery (скрывая все, кроме $(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();
В стороне, я думаю, вы имеете в виду $("table tr")
(с пробелом вместо точки).
Как у вас есть, он выбирает каждую таблицу с классом tr
(например, <table class="tr">
), что, вероятно, не является тем, что вы хотите.
Для получения дополнительной информации см. документацию .
Если вы хотите комбинировать not() с некоторыми другими селекторами, вы можете использовать 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();
})
- ИЗМЕНИТЬ для комментария:
$("table.tr").click(function() {
$("table.tr:not(#" + $(this).attr("id") + ")").hide(); // $(this) is only to illustrate my problem
$(this).show();
})