Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery不工作,但抛出';无法识别的表达式;错误_Jquery_Jquery Selectors - Fatal编程技术网

jQuery不工作,但抛出';无法识别的表达式;错误

jQuery不工作,但抛出';无法识别的表达式;错误,jquery,jquery-selectors,Jquery,Jquery Selectors,我有一组元素,我正在使用一些链接进行过滤。这些元素具有类,这些类定义单击链接时是否应显示/隐藏这些元素。一切正常,但每次单击都会出现以下错误: 未捕获错误:语法错误,无法识别的表达式:。jquery.js?v=f7cfcab3b68cbd79eec30032754a6719:3 这与下面的.not()选择器有关。我尝试过各种选择(例如,:not,包括/排除单引号和双引号,但没有什么能消除错误: var teamFilters = { dept: '', field: '' },

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

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

Firstname Lastname

职务

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

我尝试将
'.+teamFilters.dept
变量连接到
.not()
选择器之外,但没有任何区别

我正在运行jquery1.7.2


感谢您的帮助!

如果您只是在筛选课程,我认为您不需要引用:

.not('.' + teamFilters.dept)

我认为,如果您只是筛选出类,则不需要引用:

.not('.' + teamFilters.dept)
你报价过高了

.not('".' + teamFilters.dept + '"')
应该是

.not('.' + teamFilters.dept)
当然,
teamFilters.dept
似乎永远不会改变这个定义:

var teamFilters = {
    dept: '',
    field: ''
}
…如果是这样的话,你最终会得到一个无效的选择器。

你的报价过高了

.not('".' + teamFilters.dept + '"')
应该是

.not('.' + teamFilters.dept)
当然,
teamFilters.dept
似乎永远不会改变这个定义:

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

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

你的html似乎大部分都被注释了。很抱歉,这是一个错误,你编辑过你的html似乎大部分都被注释了。很抱歉,这是一个错误,你编辑过了吗?是的,当我按照你显示的方式选择时,它会工作,但我仍然看到错误。我将编辑OP以反映这一点。有什么建议teamfilters.dept的值是多少?我把它整理好了——问题是每次单击一个筛选器时,我都试图选择它,但是第一次单击(根据定义)只定义了两个过滤器中的一个,因此出现了错误。在尝试使用对象的属性来构造选择器之前,我通过测试查看对象的属性是否有值来修复它。是的,当我按照您显示的方式进行选择时,它会起作用,但我仍然看到错误。我将编辑OP以反映这一点。teamfilters.dept的值是多少?我将其排序为--t问题是每次单击过滤器时我都试图选择,但第一次单击(根据定义)仅定义了两个筛选器中的一个,因此出现了错误。在尝试使用对象的属性构造选择器之前,我通过测试查看它们是否有值来修复它。更改引用似乎没有帮助——我仍然看到了错误。NB teamFilters的属性是在
click
事件之前设置的。您是对的!这是正确的执行此操作的有效选择器--因为每次加载页面时,它都会尝试同时选择
teamFilters.dept
teamFilters.field
,但这两个字段都未设置,因此会出现错误。我在
if
语句中添加了一个
if
语句,以在尝试选择之前测试它们是否存在。谢谢!更改引用似乎没有帮助--我开始了我会看到错误。NB teamFilters的属性是在
单击
事件中设置的。你是对的!执行此操作的选择器无效--因为它尝试同时选择
teamFilters.dept
teamFilters.field
,每次在页面加载时,这两个属性都没有设置,因此出现错误。我在
中添加了一个ife> 语句测试它们是否存在,然后再尝试选择。谢谢!