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

jquery retrieve relatedTarget.data('url') value

我需要从 event.relatedTarget

中检索 data-url 属性的值

我尝试了很多方法:

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

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

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

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

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

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

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

e.relatedTarget.dataset['url']

或者:

e.relatedTarget.dataset.url

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

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

因此,在调用 jQuery 方法之前,您需要从中创建一个 jQuery 对象:

$(e.relatedTarget).data(…)