Чтобы сохранить HTML во встроенном атрибуте data
, необходимо HTML -кодировать содержимое, чтобы оно не мешало внешней структуре HTML:
$('a').on('click', function(e) {
e.preventDefault();
$('#output').append($(this).data('dot'));
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" data-dot="<div class='meta-content'><img src='https://imagelink.com'><h4>Name</h4><a href='https://link.com' target='_blank'>Web Address</a></div>">Click me</a>
<div id="output"></div>
Как говорится, нехорошо хранить HTML в атрибуте data
. Вместо этого я бы предложил хранить там сериализованную структуру данных и использовать ее для построения HTML, которую вы clone()
из DOM.