У вас есть несколько проблем здесь. В вашей первой строке $('.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.