在这种情况下
$(document).on('click', '.photo-actions .photo-link', function () {
console.log($(this));
});
对于被点击的元素, $(this)
重新使用[object object]
而不是DOM引用。
为什么会这样,以及如何获得DOM引用?
如果我写$(this).attr('id');
,它将返回它应该的元素的id。
答案 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:您没有错误!