Javascript 如何在jquery中打开并将其设置为任何对象?

Javascript 如何在jquery中打开并将其设置为任何对象?,javascript,jquery,Javascript,Jquery,如果我有这样一个函数 function foo(a) { $(this).html(a); } var r = $("#hello"); 我不能改变函数foo,我该怎么做才能使用r调用foo,这样在foo内部,它将引用r选择的对象 我试过这个 r.each(function(i, x) { foo(1); }); 但它没有起作用。这是指窗口对象。这是因为当您单独调用函数时,它将被设置为全局对象或未定义,除非函数作用域以前已绑定 要按您想要的方式使用函数,请按以下方式编写:

如果我有这样一个函数

function foo(a) {
    $(this).html(a);
}

var r = $("#hello");
我不能改变函数foo,我该怎么做才能使用r调用foo,这样在foo内部,它将引用r选择的对象

我试过这个

r.each(function(i, x) {
    foo(1);
});

但它没有起作用。这是指窗口对象。

这是因为当您单独调用函数时,它将被设置为全局对象或未定义,除非函数作用域以前已绑定

要按您想要的方式使用函数,请按以下方式编写:

r.each(foo);
这将直接传递函数,并确保将其设置为与foo主体位于匿名函数内部时相同的值

如果您想向foo传递其他参数,但每个参数都没有传递,则必须使用或调用它:


应该能够执行foo.callr。传递其他参数怎么样?r.每个参数始终只运行一个元素。jQuery只在ID必须是唯一的情况下查找第一个,然后使用foo.callr、param1、param2。。。或者foo.applyr,[param1,param2,…]。@baao它只是意味着它将是一组一。每一个都仍然有效。您是否可以包括对参数的支持。@仅当您希望它等于r而不是每个元素所运行的单个元素时,才使用omega。他们不是一回事。
r.each(function() {
  foo.call(this, 1);
});