假设我有这样的代码:
$('.myClass').each(function(){
$('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
doSomething($(this));
});
});
我传递给$(this)
函数的doSomething
是第二个 jquery括号中的内容 - $('#' + $(this).attr('id') + "_Suffix")
。我如何引用第一个括号中的内容 - 这引用的原始内容是什么? ($('.myClass').each
)
我假设我可以将其保存到变量中,然后使用该变量:
$('.myClass').each(function(){
outerThis = $(this);
$('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
doSomething($(outerThis));
});
});
但有没有办法在不这样做的情况下引用它?
答案 0 :(得分:7)
您需要将其放在一个单独的变量中:
$('.myClass').each(function(){
var outer = $(this);
$('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
doSomething(outer);
});
});
此外,livequery
已弃用;你应该使用live
代替。
答案 1 :(得分:1)
只需将范围保存在本地变量中:
$('.myClass').each(function(){
var self = $(this);
$('#' + $(this).attr('id') + "_Suffix").livequery('click', function(){
doSomething($(this));
});
});
答案 2 :(得分:0)
尝试使用局部变量
$('.myClass').each(function(){
var myclassObj = $(this);
$('#' + myclassObj.attr('id') + "_Suffix").livequery('click', function(){
doSomething($(this));
});
});