Javascript 向not函数添加变量和选择器的正确方法-jquery
我已经检查了一些答案,我认为我的语法是正确的,但有些地方工作不正常 我试图创建一个包含变量的jquery选择器数组,并将它们存储在not()函数中 我要证明这一点 函数的第二行不工作: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比更优先。但是改变课程和身份证似乎不起作用 同样,我的代码中还有一个
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(){});