如何在单个变量中存储和重用选择器和上下文表达式的组合?



我最近开始喜欢使用这种JQuery选择器模式,我想你可以将其描述为.find((API的语法快捷方式:

$('.some-element', '.within-context')

这里有一个关于它的讨论

SO 这里无论如何,我发现自己处于想要将此选择器存储为可以在脚本中的多个位置使用的变量的情况。

显然我不能这样做:var selector = '.some-element', '.within-context'因为这只会给我留下一个变量保持'.within-context'

'.some-element, .within-context'是完全不同的东西...

尽管对文档和SO进行了侦查,但我什至不确定这是做什么的:$(['.some-element', '.within-context'])

不确定还能尝试什么,我应该只做两个变量吗?

考虑使用展开运算符从数组中扩展$的参数。通过这种方式,您可以将选择器组合存储在数组中,并在以后将其作为两个不同的参数传递给 jQuery 构造函数。

例如:

let someSelectorCombo = ['.some-element', '.some-context']; // Store the selector
$(...someSelectorCombo).text('Yay') // Expand the stored selector to two arguments
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="some-context">
<div class="some-element"></div>
</div>

为什么不直接$('.within-context .some-element')

或者如果你仍然想使用上下文,你可以使用apply,但我认为没有多大意义

var selectorWithContext = ['.some-element', '.within-context'];
$.apply(null, selectorWithContext);

最新更新