Есть ли способ сохранить элемент Jquery в атрибуте данных HTML5? - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть элемент 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')))

1 Ответ

0 голосов
/ 02 сентября 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...