jQuery not()工作但抛出'无法识别的表达式'。错误

时间:2013-07-05 11:08:56

标签: jquery jquery-selectors

我有一组元素,我正在使用一些链接进行过滤。元素具有类,用于定义在单击链接时是否应显示/隐藏它们。一切正常,但每次点击都会出现此错误:

  

未捕获错误:语法错误,无法识别的表达式:。 ?的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。

任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:3)

如果您只是过滤课程,我认为您不需要引用:

.not('.' + teamFilters.dept)

答案 1 :(得分:3)

你有过分引用。

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

应该是

.not('.' + teamFilters.dept)

当然,teamFilters.dept似乎没有改变这个定义:

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

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