我有这个简单的调试代码(还有更多,但这是剥离版本):
function calc(container) {
console.log(container);
return 100;
};
$(".replace").text(calc(this));
控制台只是返回window
,而不是元素。为什么是这样?有什么东西可以阻止 jQuery/JavaScript 返回元素吗?
我有这个简单的调试代码(还有更多,但这是剥离版本):
function calc(container) {
console.log(container);
return 100;
};
$(".replace").text(calc(this));
控制台只是返回window
,而不是元素。为什么是这样?有什么东西可以阻止 jQuery/JavaScript 返回元素吗?
在全球范围内,this
是 window
。
> this === window
true
你想要的可能是这样的:
var $replace = $(".replace");
$replace.text(calc($replace));
因为该calc
方法不是在元素的上下文中调用的,所以您需要使用类似的东西
$(".replace").text(function(){
return calc(this)
});
在这种情况下,该calc
方法在回调方法中调用,其中this
引用当前元素。
演示:小提琴
this
这里指的是window对象
$(".replace").text(calc(this));
你应该使用
$(".replace").text(function(){
return calc(this); // here this refers to the current element with class replace
});
阅读此关键字
只是另一种选择,因为您正在寻找元素,只需使用您的函数引用本身作为text的参数。
function calc() {
console.log(this);
return 100;
};
$(".replace").text(calc);