1

我有一组元素,我正在使用一些链接进行过滤。元素具有定义单击链接时是否应显示/隐藏它们的类。一切正常,除了每次点击我都会收到这个错误:

未捕获的错误:语法错误,无法识别的表达式:。jquery.js?v=f7cfcab3b68cbd79eec30032754a6719:3

这与我.not()下面的选择器有关。我尝试了各种替代方案(例如:not,以及包括/不包括单引号和双引号,但没有什么能摆脱错误:

var teamFilters = {
    dept: '',
    field: ''
}, filter;
$('.team-member-filters a').click(function() {
    var link = $(this);
    filter = $(this).attr('class');
    if (link.parent().hasClass('active')) {
        link.parent().removeClass('active');
        teamFilters[filter] = '';
    } else {
        link.parent().addClass('active').siblings().removeClass('active');
        teamFilters[filter] = $(this).attr('id');
    }
    $('.main-body .team-member').animate({opacity: 1}, 250);
    $('.main-body .team-member').not('.' + teamFilters.dept).animate({opacity: 0.25}, 250);
    $('.main-body .team-member').not('.' + teamFilters.field).animate({opacity: 0.25}, 250);

    //console.log(teamFilters.dept);
});

被过滤的单个元素的 HTML 是:

<div class="team-member secretariate reducing">
    <div>
        <img src="/~climatex/files/cache/9d8d7862edc9f22dab5245926f79dace_f52.jpg" width="75" height="75" alt="">
        <p class="name">Firstname Lastname</p>
        <p class="position">Job title</p>
    </div>
    <a class="email" href="mailto:name@email.com">name@email.com</a>
    <a href="http://www.url.com" target="_blank">www.url.com</a>
</div>

选择'.' + teamFilters.dept器抛出错误,但由于一切正常,我不知道为什么。

我试图'.'+teamFilters.dept在选择器之外连接变量,.not()但它没有任何区别。

我正在运行 jQuery 1.7.2。

任何帮助表示赞赏!

4

2 回答 2

3

如果您只是过滤掉类,我认为您不需要引号:

.not('.' + teamFilters.dept)
于 2013-07-05T11:11:06.397 回答
3

你已经高估了。

.not('".' + teamFilters.dept + '"')

应该

.not('.' + teamFilters.dept)

当然,teamFilters.dept这个定义似乎永远不会改变:

var teamFilters = {
    dept: '',
    field: ''
}

...如果是这样的话,无论如何你最终都会得到一个无效的选择器。

于 2013-07-05T11:11:13.103 回答