jQuery .filter()没有变量的元素

时间:2014-02-07 00:03:26

标签: javascript jquery html

我该怎么做呢:

activeSelector = '.active,.selected,.current';

$menuChildren.filter(activeSelector).find('.each-project-content-container').remove();

进入不是activeSelector的过滤器?

一些不起作用的想法让你明白了:

$menuChildren.filter(!activeSelector).find('.each-project-content-container').remove();
$menuChildren.filter(!=activeSelector).find('.each-project-content-container').remove();
$menuChildren.not(filter(activeSelector)).find('.each-project-content-container').remove();

2 个答案:

答案 0 :(得分:1)

您可以使用not()

$menuChildren.not(activeSelector)

答案 1 :(得分:0)

试试这个:

$menuChildren.filter(function(index) {
    return $(this).not(activeSelector).find('.each-project-content-container').remove();
});

这将检查通过过滤器传递的每个元素,并查找没有activeSelector字符串的元素。如果找到匹配的元素,那么它将删除.each-project-content-container子元素。

编辑:

实际上,您甚至不需要filter()来电。您只需选择所有非活动元素,找到指定类的子元素,然后删除:

$menuChildren.not(activeSelector).find('.each-project-content-container').remove();

其功能与上述相同,仍然是单行。