【发布时间】:2016-07-06 16:50:26
【问题描述】:
有没有办法将$ 替换为$_sub 之类的东西,其动作包含在div 中?例如,我想将$_sub 注入一个函数,而不是使用$,该函数使用$_sub 将其范围限制在div 内,同时保留可以在$ 上调用的方法(例如我应该可以做到$_sub.ajax())
<a href="#">Outside </a>
<div id="contents" >
<a href="#">Inside </a>
</div>
function modify($_sub) {
var inner_a = $_sub("a"); //should return only the inner <a>
}
context 在这种情况下对我不起作用。我希望函数认为$_sub 就像$。我可以更改函数签名以将$_sub 重命名为$,这样函数甚至都不知道它使用的是实际$ 的范围受限版本。
【问题讨论】:
-
设计一种使用选择器而不是 jquery 来限制作用域的方法,因为它在整个 DOM 上加载和工作,而不是在 DOM 树中的特定节点上。
-
只需将上下文作为第二个参数传入...stackoverflow.com/questions/16422478/…
-
$_sub = $会将 jquery 引用复制到新变量。但它的范围不仅仅局限于它可以访问的 dom 元素。为什么不限制选择器中父基的范围?你想完成什么 -
您可以使用更具体的选择器。例如:
$_sub("#contents a")将抓取#contents元素内的任何a元素。 -
为什么不呢?
var $_sub=$('#contents'); $_sub.find('a');