Javascript 向not函数添加变量和选择器的正确方法-jquery

Javascript 向not函数添加变量和选择器的正确方法-jquery,javascript,jquery,arrays,variables,jquery-selectors,Javascript,Jquery,Arrays,Variables,Jquery Selectors,我已经检查了一些答案,我认为我的语法是正确的,但有些地方工作不正常 我试图创建一个包含变量的jquery选择器数组,并将它们存储在not()函数中 我要证明这一点 函数的第二行不工作: var trigger = $('mainNav li:eq(0) a'); var headerLinks = $('#header a').not('.control a', + trigger); 我的第一个想法是,在css术语中,#头a比更优先。但是改变课程和身份证似乎不起作用 同样,我的代码中还有一个

我已经检查了一些答案,我认为我的语法是正确的,但有些地方工作不正常

我试图创建一个包含变量的jquery选择器数组,并将它们存储在not()函数中

我要证明这一点

函数的第二行不工作:

var trigger = $('mainNav li:eq(0) a');
var headerLinks = $('#header a').not('.control a', + trigger);
我的第一个想法是,在css术语中,
#头a
更优先。但是改变课程和身份证似乎不起作用

同样,我的代码中还有一个更简单的var:

var content = $('.content');
var added = $('.extraList', + content);
在控制台中,
added
仅返回
extraList
选择器

1该函数的工作方式是否与其他jquery选择器不同?我希望看到控制台中选择和/或过滤的所有元素的数组

2有没有办法将变量和选择器存储在一个标准数组中并调用它?我不知道这与jquery解释它所需要的完全一样,但类似于:

var arr = ['.control a', headerLinks, content, '.post'];

我意识到这是混合类型,但我不确定如何将jquery变量和选择器传递到同一个数组中(如果可能的话)

对于代码
var headerLinks=$('#header a')。不('.control a',+触发器)

您可以简单地使用chainglike

var headerLinks = $('#header a').not('.control a').not(trigger);


对于
var added=$('.extraList',+content)

你可以用

创建一个新的jQuery对象,将元素添加到匹配的元素集中


感谢@Satpal。你的回答确实帮了我的忙,但我就是这么做的

存储jquery选择器数组,以便以后从函数中排除,我可以继续添加或编辑此变量。(我认为这更简洁,因为它将代码分离了一点,并且绕过了父/子问题):

创建要包含在函数中的另一组链接:

var headerLinks = $('#header a');
var contentLinks = $('.post a');
merge.on('click',function(){});
合并将用于触发函数的选择器,并添加排除的选择器:

var merge = $.merge(headerLinks, contentLinks).not(exclude);
现在单击功能:

var headerLinks = $('#header a');
var contentLinks = $('.post a');
merge.on('click',function(){});
应该激发我想要的链接,而不是我不想要的链接

我仍然想知道如何在标准javascript数组中存储jquery选择器和变量数组


更新的fiddle:

谢谢@Satpal我确实尝试过链接not函数,但似乎不起作用。请参阅更新的fiddle:@lharby,
.control
不是
标题的子项,因此
$('#标题a')。而不是('.control a')
仍将引用
$('#标题a')
。你想实现什么?我想填充一个不应该触发某个函数的链接列表。其他未指定的链接应触发该函数。好的,添加函数可以正常工作。不幸的是,控件a链接仍在将“已单击”记录到控制台,而它们本应被排除。Ah OK,not():从匹配的元素集中删除元素。因此,它将第一个选择器作为父选择器运行。谢谢。@lharby,请看这将解决您的问题,主要更改是
var headerLinks=$(“#header a”)。不是(触发器);var contentLinks=$('.post a')。而不是('.control a')
merge.on('click',function(){});