Javascript 访问JQuery元素-$.data

Javascript 访问JQuery元素-$.data,javascript,jquery,Javascript,Jquery,如何访问JQuery元素 我创建元素: var el = $('<div></div>'); $.data(el, 'data', {first: 'first'}); $('body').append(el); 但我需要通过HTML标记或类读取: $.data('div', 'data').first 可能吗 谢谢大家! 如果我没有弄错,请在jQuery对象本身上使用数据API: $('div').first().data() 根据最终目标,我要么将变量保存

如何访问JQuery元素

我创建元素:

var el = $('<div></div>');

$.data(el, 'data', {first: 'first'});

$('body').append(el);
但我需要通过HTML标记或类读取:

$.data('div', 'data').first
可能吗


谢谢大家!

如果我没有弄错,请在jQuery对象本身上使用数据API:

$('div').first().data()

根据最终目标,我要么将变量保存在javascript中,要么向div添加一个额外的数据属性,以便稍后轻松选择

所以你可以

$('<div />', { 'data-has-data': 'true' }).data({ first: 'first' }).appendTo('body');
var el = $('<div />').data({ first: 'first' }).appendTo('body');

// to access later
var firstData = el.data().first;
或者你也可以

$('<div />', { 'data-has-data': 'true' }).data({ first: 'first' }).appendTo('body');
var el = $('<div />').data({ first: 'first' }).appendTo('body');

// to access later
var firstData = el.data().first;
var el=$('').data({first:'first'}).appendTo('body');
//以后访问
var firstData=el.data().first;

首先,使用函数时要小心,因为它是一种低级方法。它不是设计用于jQuery元素,而是用于原始DOM元素。根据,
元素
期望一个DOM元素与数据关联。我之所以强调DOM,是因为您要将jQuery而不是相应的DOM元素传递给
$。data

var el = $('<div></div>');
$.data(el, 'data', {first: 'first'});
然后,您可以通过多种方式恢复
数据
字段:

// Using the jQuery.data method.
$.data(el[0], 'data').first
$.data($('div')[0], 'data').first

// Using the more convenient contextual method .data
el.data('data').first
$('div').data('data').first

// Combining jQuery and vanilla js
$.data(document.getElementsByTagName('div')[0], 'data').first
但是,下面的语句如何获得正确的存储数据属性

$.data(el, 'data').first
在使用jQuery元素调用
jQuery.data
时,将
data
属性添加到jQuery包装器元素,而不是包装的DOM元素。因此,检索此
数据
字段的唯一方法是使用相同的对象:

$.data(el, 'data').first
el.data('data').first

但是,一旦
el
引用消失,您将无法再次恢复
数据
属性。因为正如我前面所说,您不是在DOM模型中存储这个
数据
属性,而是在一个局部变量中存储它。

是的,我写了关于以后按变量访问的内容,但我需要按HTML标记或类访问。因为我有很多元素。我需要从
.active
类读取数据。我使用
$.data
,而不是
el.data()
<代码>$。数据
更快。这就是数据对象。不确定您试图实现什么。它不起作用,因为尚未将
data
属性添加到div DOM元素。否则,它将获得第一个div元素的正确数据对象。
$.data(el, 'data').first
el.data('data').first