jquery检索relatedTarget.data(’url’)值

我需要从event.relatedTarget中检索data-url属性的值

我试过很多方面:

e.relatedTarget.data('url') e.relatedTarget.attr('url') e.relatedTarget.prop('url') 

但它总是返回错误..但价值在那里:

截图

我怎样才能找回它? 谢谢! 乔

看到你直接访问事件对象本身,jQuery的attr()prop()方法在这里不起作用,因为这不是一个jQuery对象。 您会注意到事件对象上也没有data键,而是将键称为dataset 。 此外,这不是一个函数,所以()括号在这里不会实现任何东西。

而不是e.relatedTarget.data('url') ,你将要使用:

 e.relatedTarget.dataset['url'] 

要么:

 e.relatedTarget.dataset.url 

值得注意的是,这比将事件对象转换为jQuery对象并调用jQuery函数之一具有明显更好的性能,因为其他答案在这里建议,因为你拥有所有属性。 所有jQuery都会将它转换回你已经拥有的对象并以与我上面所包含的方式非常相似的方式访问属性,所以不是直接从A到B,你最终会从A到A C然后回到A到B.

 $(e.relatedTarget).data('url'); 

这是一个js元素。 要使用data()函数,必须使该元素成为jquery元素。

e.relatedTarget返回对DOM元素的引用,而不是jQuery对象。

所以在你可以调用jQuery方法之前,你需要从它创建一个jQuery对象:

$(e.relatedTarget).data(…)