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

时间:2016-10-21 09:39:44

标签: jquery custom-data-attribute

我需要从event.relatedTarget

中检索data-url属性的值

我试过很多方法:

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

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

screenshot

我该如何检索它? 谢谢! 乔

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:3)

看到你直接访问事件对象本身,jQuery的try in_file_id = fopen(in_path,'r'); fread(in_file_id); catch error('Problem with input file.') end attr()方法在这里不起作用,因为这不是一个jQuery对象。您会注意到事件对象上没有prop()键,而是将键称为data。此外,这不是一个功能,所以dataset括号在这里无法实现。

而不是(),您将要使用:

e.relatedTarget.data('url')

或者:

e.relatedTarget.dataset['url']

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

答案 2 :(得分:1)

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

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

$(e.relatedTarget).data(…)