我试图编写一个干净的 jQuery 代码,并将所有内容放入一个我在“each”中调用的函数中。问题是没有任何反应,并且在控制台中没有出现任何错误。
这是一个示例代码:
$(function() {
$('.myElement').each(function() {
if($(this).children()) {
myFunction();
} else {
myFunction('.myOtherElement');
}
});
});
function myFunction(selector) {
if(!selector) {
$(this).html('Finish');
} else {
$(this).find(selector).html('Finish');
}
}
如果我将函数内容放在 .each 中,它可以工作,但在单独的函数中则不行,我认为它应该可以工作。为什么这段代码不起作用?
最佳答案
在这种情况下执行上下文(this)是不同的,您可以使用.call()应用它
$(function() {
$('.myElement').each(function() {
if($(this).children()) {
myFunction.call(this);
} else {
myFunction.call(this, '.myOtherElement');
}
});
});
关于javascript - 为什么当我在单独的函数中使用 $(this) 并在 .each() 中调用它时它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18672757/