Javascript &引用;这";正在返回[object Window],而不是元素

Javascript &引用;这";正在返回[object Window],而不是元素,javascript,jquery,html,this,Javascript,Jquery,Html,This,我有这个简单的调试代码(还有更多,但这是精简版): 控制台只是返回窗口,而不是返回元素。为什么会这样?有什么东西阻止jQuery/JavaScript返回元素吗?因为calc方法没有在元素的上下文中调用,所以需要使用 $(".replace").text(function(){ return calc(this) }); 在这种情况下,在回调方法中调用calc方法,其中this引用当前元素 演示:因为在元素的上下文中没有调用calc方法,所以需要使用 $(".replace").tex

我有这个简单的调试代码(还有更多,但这是精简版):


控制台只是返回
窗口
,而不是返回元素。为什么会这样?有什么东西阻止jQuery/JavaScript返回元素吗?

因为
calc
方法没有在元素的上下文中调用,所以需要使用

$(".replace").text(function(){
    return calc(this)
});
在这种情况下,在回调方法中调用
calc
方法,其中
this
引用当前元素


演示:

因为在元素的上下文中没有调用
calc
方法,所以需要使用

$(".replace").text(function(){
    return calc(this)
});
在这种情况下,在回调方法中调用
calc
方法,其中
this
引用当前元素


演示:

此处指的是窗口对象

$(".replace").text(calc(this));
你应该使用

$(".replace").text(function(){
    return calc(this); // here this refers to the current element with class replace
});

读取此

此处的
指的是窗口对象

$(".replace").text(calc(this));
你应该使用

$(".replace").text(function(){
    return calc(this); // here this refers to the current element with class replace
});

阅读

在全局上下文中,
窗口

> this === window
true
你想要的可能是这样的:

var $replace = $(".replace");
$replace.text(calc($replace));

在全局上下文中,
窗口

> this === window
true
你想要的可能是这样的:

var $replace = $(".replace");
$replace.text(calc($replace));

这只是另一个选项,因为您正在查找元素,所以只需使用函数引用本身作为的参数


这只是另一个选项,因为您正在查找元素,所以只需使用函数引用本身作为的参数

因为当您调用该函数时,当前作用域是窗口

如果要使用元素,请改用函数参数

参考

没错

因为当您调用该函数时,当前作用域是窗口

如果要使用元素,请改用函数参数


参考

Yes,
是该范围内的
窗口
。Yes,
是该范围内的
窗口
。Yes,我理解;我的评论是针对那些在家里随波逐流的人的:)是的,我明白;我的评论是针对那些在家里玩的人的:)哈哈,太奇怪了,我今天午餐的时候就直接读了那个文档页面。这将文本替换为函数(){percentCalc(This);},并且不会记录任何内容,因为函数没有运行。哈哈,太奇怪了,我今天午餐的时候就直接读了那个文档页面。这将文本替换为函数(){percentCalc(this);}并且不会记录任何内容,因为函数没有运行。这将用
函数(){percentCalc(this);}替换文本因为函数没有运行,所以不会记录任何东西。是的,接受的答案对我有效,但不是这个。奇怪。@Ian然后问题是你想对参数
容器做什么?你想对它调用任何jquery方法吗?好的,原来这是因为我在使用草稿行。当我我没有使用scratchpad,它更适合我的目的。这将用
function(){percentCalc(This);}替换文本因为函数没有运行,所以不会记录任何东西。是的,接受的答案对我有效,但不是这个。奇怪。@Ian然后问题是你想对参数
容器做什么?你想对它调用任何jquery方法吗?好的,原来这是因为我在使用草稿行。当我我没有使用scratchpad,它对我来说效果更好。它的值与作用域无关,总是在当前执行上下文中解析(并且总是在进入执行上下文时设置)。它的值与作用域无关,总是在当前执行上下文中解析(始终在输入执行上下文时设置)。