我有一组元素,我正在使用一些链接进行过滤。元素具有类,用于定义在单击链接时是否应显示/隐藏它们。一切正常,但每次点击都会出现此错误:
未捕获错误:语法错误,无法识别的表达式:。 ?的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。
任何帮助表示赞赏!
答案 0 :(得分:3)
如果您只是过滤课程,我认为您不需要引用:
.not('.' + teamFilters.dept)
答案 1 :(得分:3)
你有过分引用。
.not('".' + teamFilters.dept + '"')
应该是
.not('.' + teamFilters.dept)
当然,teamFilters.dept
似乎没有改变这个定义:
var teamFilters = {
dept: '',
field: ''
}
......如果是这样的话,你最终会得到一个无效的选择器。