Jef*_*itz 19 javascript jquery
我正在创建一个Javascript对象,其中包含一个执行jQuery each
方法的函数,如下所示:
function MyClass {
Method1 = function(obj) {
// Does something here
}
Method2 = function() {
$(".SomeClass").each(function() {
// 1 2
this.Method1(this);
});
}
}
Run Code Online (Sandbox Code Playgroud)
每个THIS
指的是哪个对象?jQuery指的是each
迭代返回的项.但是,我想This[1]
参考包含类...
如何从jQuery循环中引用包含类?
sli*_*set 20
我想你可以这样做:
function MyClass {
Method1 = function(obj) {
//do something here
}
Method2 = function () {
var containingClass = this;
$(".SomeClass").each(function () {
containingClass.Method1(this);
});
}
}
}
Run Code Online (Sandbox Code Playgroud)
Tam*_*ege 11
来自http://docs.jquery.com/Core/each:
这意味着每次执行传入函数时(对于每个匹配的元素都是一次),'this'关键字指向特定的DOM元素.请注意,'this'不指向jQuery对象.
就个人而言,我更喜欢使用显式参数.这样,它更容易阅读:
$('#rotfl').each(function(index, domObject)
{
var jQueryObject = $(domObject);
// code
});
Run Code Online (Sandbox Code Playgroud)
回答你的问题:JavaScript具有动态静态范围.您可以执行以下操作:
var that = this;
$('#rotfl').each(function(index, domObject)
{
var jQueryObject = $(domObject);
that.DoSomething();
// code
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13331 次 |
最近记录: |