在什么情况下,下面代码中的“this”和“element”是指页面而不是选择器?
$("a.tag")
.each(
function (index, element) {
console.log("'this' is " + this);
console.log("'element' is " + element);
}
)
产生以下元素的次数:
'this' is file:///C:/Projects/PlaceTag/PlaceTag/default.html# default.html:50
'element' is file:///C:/Projects/PlaceTag/PlaceTag/default.html#
答案 0 :(得分:6)
this
和element
始终引用.each()
回调中的DOM元素。
您的代码通过+
连接运算符将DOM元素强制转换为字符串
这将返回元素的href
属性。
相反,您可以将对象本身传递给log()
:
console.log("'this' is ", this);
答案 1 :(得分:0)
每次使用.each时,您的上下文都会发生变化,因此'this'会发生变化。简单的解决方案是添加对“this”的引用。
var self = this;
$("a.tag")
.each(
function (index, element) {
console.log("'self' is " + self);
console.log("'this' is " + this);
console.log("'element' is " + element);
}
)