高度なタイトル、簡単な質問:
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">
_)のクラスを持つすべてのテーブルを選択しますが、これはおそらく望んでいないものです。
詳細については、 documentation を参照してください。
Not()を他のセレクターと組み合わせたい場合は、add()を使用できます。
$('a').click(function(e){
$('a').not(this).add('#someID, .someClass, #someOtherID').animate({'opacity':0}, 800);
});
これにより、クリックされたリンク以外のすべてのリンクがフェードアウトされ、さらに選択されたIDとクラスがフェードアウトされます。
私は解決策はこれだと思う:
$("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();
})