Javascript 有没有办法在HTML5数据属性中存储Jquery元素?

Javascript 有没有办法在HTML5数据属性中存储Jquery元素?,javascript,jquery,html,Javascript,Jquery,Html,我有一个Jquery元素,我想用以下方式存储在DOM中: var html = '<button data-element="' + $('.some-selector') + '">Some action</button>'; $(html).appendTo('body'); console.log($('button').data('element')); var html='Some action'; $(html).appendTo('body'); co

我有一个Jquery元素,我想用以下方式存储在DOM中:

var html = '<button data-element="' + $('.some-selector') + '">Some action</button>';

$(html).appendTo('body');

console.log($('button').data('element'));
var html='Some action';
$(html).appendTo('body');
console.log($('button').data('element'));
这将生成类似于
jquery3310402357555567121182
的引用。有没有办法将其转换回普通Jquery对象


注:我不想在添加按钮后存储它(例如,
$('button')。数据('element',$('some selector'))

这里有一些问题。在第一行中,
$('.someselector'])
返回一个jQuery对象。通过将其添加到字符串中,对象将转换为类似于
“[object object]”
。我想你想要的是:

var html = $('<button>Some action</button>').data('element', $('.some-selector'));
$(html).appendTo('body');
console.log($(html).data('element'));
var html=$('Some action').data('element',$('Some selector'));
$(html).appendTo('body');
log($(html.data('element'));

第一行创建button对象,并将jQuery对象添加到数据“元素”中——不知道为什么要避免这种情况。第二个将其添加到主体中。第三行打印出jQuery对象。使用jQuery的
.data
的一个(众多)优点是它可以避免循环引用,如果您将DOM对象存储在DOM对象中,这是一个加号。

听起来像是一个XY问题。为什么不直接存储选择器,或者将关联保存在
映射
或其他什么东西中?“我不想在添加按钮(例如$('button').data('element',$('some selector'))后存储它”,为什么不呢?最具jquery风格的方式可能是
$(html).数据('element',$('some selector')).appendTo('body')
。您不需要在
$()
中包装
html
,它已经是jquery对象了。这是事实。我试着把OP的代码修改得最少。此外,老实说,我倾向于大量重写jQuery对象,因为它们通常被深埋在我的代码中,足以成为其他类型的对象。