4

基本的に、たとえば「Web デザイン」をクリックすると、そのようにマークされていない div がフェードアウトするように、ポートフォリオ用のフィルターを作成しています。問題は、「#content」内に触れたくないタイトル div ハウスがいくつかあることです。

$(document).ready(function() {
    $('#filternav a').click(function() {
        $('#filternav .current').removeClass('current');
        $(this).parent().addClass('current');

        var filterVal = $(this).text().toLowerCase().replace(' ','-');

        if(filterVal == 'view-all') {
            $('#content div.hidden').fadeIn('slow').removeClass('hidden');
        } else {

            $('#content div').each(function() {
                if(!$(this).hasClass(filterVal)) {

                    $(this).fadeOut('normal').addClass('hidden');

                } else {
                    $(this).fadeIn('slow').removeClass('hidden');
                }
            });
        }

        return false;
    });
});

#content div という行に何かを追加したいと思います。クラス「タイトル」を持つものを除外する each(function)。if ステートメントと同じくらい単純であるべきだと思いますが、何か間違ったことをしているに違いありません。また、jQuery を初めて使用するので、この構文がどうあるべきかわかりません。ありがとう。

4

3 に答える 3

7

.not以下のように使ってみてください。

$('#content div').not('.title').each(function() {
于 2012-05-24T21:09:38.083 に答える
4

: not セレクターを使用してすぐに除外できます。

$('#content div:not(.title)')
于 2012-05-24T21:11:10.203 に答える
3

.not() セレクターを使用します。

交換

$('#content div')

$('#content div').not(".title")
于 2012-05-24T21:09:41.950 に答える