2

下面代码中的“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# 
4

2 回答 2

6

两者都this并且总是在回调element中引用 DOM 元素。.each()

您的代码通过连接运算符将 DOM 元素强制转换为字符串+
这将返回元素的href属性。

相反,您可以将对象本身传递给log()

console.log("'this' is ", this);
于 2013-10-03T15:34:30.193 回答
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);
    }
)
于 2013-10-03T15:35:45.907 回答