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

时间:2018-05-07 07:19:39

标签: javascript jquery

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

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

有关SO here

的讨论

无论如何,我发现自己处于这样一种情况,我希望将这个选择器存储为一个变量,我可以在我的脚本中的多个位置使用它。

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

'.some-element, .within-context'完全不同......

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

我不确定要尝试什么,我应该制作两个变量吗?

2 个答案:

答案 0 :(得分:1)

考虑使用spread operator扩展数组中的$参数。这样,您可以将选择器组合存储在数组中,稍后将其作为两个不同的参数传递给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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

为什么不只是$('.within-context .some-element')

或者如果你仍然想使用上下文,你可以使用apply,但我看不多了点

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