作为标题,有没有办法在不使用匿名函数的情况下将元素传递给函数?
或换句话说:
我知道我可以将元素传递给函数,如下所示:
function fakeFunction(elementReceived){
elementReceived.hide();
}
$(".class-x").each(function(){
fakeFunction($(this));
});
这是不可接受的,因为我需要防止使用匿名函数,因为测试中存在一些问题。
所以我写了这样的话:
function fakeFunction(){
$(this).hide();
}
$(".class-x").each(fakeFunction);
这样做更好但是可读性降低了,因为实际代码中的函数离调用行很远,并且直接使用$(this)会让人感到困惑。
我被告知(并被要求调查)以下内容应该是可能的:
function fakeFunction(elementReceived){
elementReceived.hide();
}
$(".class-x").each(fakeFunction, $(this));
但是上面代码中的$(this)反而传递了整个文档.....应该用什么方法编写呢?
答案 0 :(得分:3)
如果你看the documentation for each
,你会看到函数的第二个参数是元素(例如,与this
相同)。所以:
function fakeFunction(index, element){
$(element).hide();
}
$(".class-x").each(fakeFunction);
(当然,在这种特殊情况下,您可以$(".class-x").hide();
,但我认为fakeFunction
实际上做了其他事情。)