4

基本上,我正在为我的作品集制作一个过滤器,以便您可以单击“网页设计”,例如,它会淡出未标记为此类的 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 回答