0

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

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

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

console.log($('button').data('element'));

这会产生一个参考,如jQuery331040235755567121182. 有没有办法将它转换回普通的 Jquery 对象?

PS:添加按钮后不想存储(如$('button').data('element', $('.some-selector'))

4

1 回答 1

0

你在这里有几个问题。在您的第一行中,$('.some-selector'])返回一个 jQuery 对象。通过将其添加到字符串中,对象将转换为类似"[object Object]". 我认为你想要的是这样的:

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

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

于 2018-09-02T14:10:30.833 回答