Из документов jQuery на .html()
:
Получить содержимое HTML первого элемента в наборе соответствующих элементов или задать содержимое HTML каждого соответствующего элемента.
Так вот почему вы получаете только первый элемент.
Если вы просто хотите, чтобы все адреса электронной почты в строке были вставлены в почтовый клиент, возможно, вы могли бы просто сделать что-то вроде этого:
var emailAddresses = $('.emails').map(function(i, element) {
return $(element).text();
}).toArray().join(';');
$('#for-copy').text(emailAddresses);
При этом получаются все элементы с классом .emails
, итерация по ним с помощью .map()
для получения текста, преобразование результата в массив, а затем преобразование его в строку, разделенную точкой с запятой, с помощью .join()
, В этом случае фактически нет необходимости клонировать элементы.