“this”返回的是[对象窗口],而不是元素
"This" is returning [object Window], not the element
我有这个简单的调试代码(还有更多,但这是剥离版本):
function calc(container) {
console.log(container);
return 100;
};
$(".replace").text(calc(this));
控制台只是返回window
,而不是元素。这是为什么呢?有什么东西阻止jQuery/JavaScript返回元素吗?
因为 calc
方法不是在元素的上下文中调用的,所以你需要使用类似的东西
$(".replace").text(function(){
return calc(this)
});
在这种情况下,calc
方法在回调方法中调用,其中this
引用当前元素。
演示:小提琴
这里的this
是指窗口对象
$(".replace").text(calc(this));
你应该使用
$(".replace").text(function(){
return calc(this); // here this refers to the current element with class replace
});
阅读此关键字
在全局上下文中,this
是window
。
> this === window
true
你想要的可能是这样的:
var $replace = $(".replace");
$replace.text(calc($replace));
只是另一种选择,因为您正在寻找元素,只需使用函数引用本身作为文本的参数。
function calc() {
console.log(this);
return 100;
};
$(".replace").text(calc);
没
错。
因为当您调用该函数时,当前范围是窗口。
如果要使用该元素,请改用函数参数。
参考 j查询集文本
相关文章:
- Javascript更新孙窗口中的表单元素
- 如何在浏览器窗口变大/变小时捕捉元素的宽度
- 从html锚元素传递窗口对象
- 可以在调整窗口大小时重新调整stellar.js的元素偏移量
- Chrome应用程序在全屏中创建新窗口-html元素不是全高的
- 我需要帮助弄清楚一旦窗口的垂直高度被滚动,如何切换一个元素
- 将jquery ui窗口的父元素设置为另一个元素
- 如何获得一个进度元素,它被设置为在窗口调整大小时调整大小
- 使用JavaScript更改带有窗口高度的元素样式
- 如何将剑道UI窗口与页面上的另一个元素对齐
- 滚动窗口内的一个元素,该窗口具有滚动条
- 使用JQuery从窗口底部修复元素
- Jquery:当鼠标指针进入和离开元素时,创建一个弹出窗口
- 如何获得点击的元素'id并在jquery中打开一个弹出窗口
- 获取网页html元素值,而无需使用JavaScript在新窗口或新选项卡中打开页面
- 获取元素左侧的像素Javascript似乎只有在窗口稍微调整大小时才起作用
- 如何保持填充窗口的元素居中
- 是否可以在chrome的检查元素窗口中添加一个新选项卡
- 警告中心元素窗口(jQuery)
- JCarousel只运行在IE11当我有检查元素窗口打开