jquery $(this)返回[object object]而不是DOM引用

时间:2014-10-11 10:06:27

标签: jquery dom this

在这种情况下

$(document).on('click', '.photo-actions .photo-link', function () {

   console.log($(this));

});
对于被点击的元素,

$(this)重新使用[object object]而不是DOM引用。 为什么会这样,以及如何获得DOM引用? 如果我写$(this).attr('id');,它将返回它应该的元素的id。

5 个答案:

答案 0 :(得分:3)

要获取DOM元素,请使用$.get()

 $(this).get(0); 

答案 1 :(得分:2)

$(this)返回[object object]因为它是一个jquery对象。试试console.log(this),你会得到
你需要的dom元素。

答案 2 :(得分:0)

简单地使用'这个'对于DOM引用,或者' $(this)[0]'。 ' $(this)'的价值是一个jQuery对象,它为您提供了所有jQuery功能。

答案 3 :(得分:0)

this IS DOM元素。通过将其包装在$函数调用中,您将获得一个继承自jQuery.prototype的对象。

因此,为了获取ID,您可以执行以下操作:this.id$(this).attr("id")
如果你收到了一个jQuery对象,你可以使用$myObj.get(0)$myObj[0]提取DOM元素,但事实并非如此。

答案 4 :(得分:0)

[object Object]是JavaScript中Object的字符串表示形式。

考虑一下:

alert({}); // [object Object]
alert(document.body); // Old browsers [object Object] newer browsers [object HTMLBodyElement]

如果你看到jQuery对象或函数的任何其他实例的字符串表示,它将是[object Object]

尝试摆弄这个:

String({}); // [object Object]
// Internally .toString is called:
var myObj = {};
myObj.toString(); // [object Object]

TLDR:您没有错误!