Javascript 访问JQuery元素-$.data
如何访问JQuery元素 我创建元素: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() 根据最终目标,我要么将变量保存
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