Как применить кнопку в блоке к элементу в этом блоке ,когда таких блоков множество?
Нужно что бы по кнопке копи - копировалось значение href.HELP ME PLEASE
<div>
<a class="link" href="3">sometxt1</a>
<button class="btn">copy</button>
</div>
<div>
<a class="link" href="2">sometxt2</a>
<button class="btn">copy</button>
</div>
<div>
<a class="link" href="1">sometxt3</a>
<button class="btn">copy</button>
</div>
<script>
var copyEmailBtns = document.querySelectorAll("button.btn"); // Получаем все элементы с классом
var emailLinks = document.querySelectorAll("a.link"); // Получаем все элементы с классом
for (let i = 0; i < copyEmailBtns.length; i++) {
// Для каждого значения
copyEmailBtns[i].addEventListener("click", function() {
// К copyEmailBtns добавляем индекс [i]
var range = document.createRange();
range.selectNode(emailLinks[i]); // Добавляем индекс [i]
window.getSelection().addRange(range);
try {
// Теперь, когда мы выбрали текст ссылки, выполним команду копирования
var successful = document.execCommand("copy");
var msg = successful ? "successful" : "unsuccessful";
console.log("Copy email command was " + msg);
} catch (err) {
console.log("Oops, unable to copy");
}
// Снятие выделения - ВНИМАНИЕ: вы должны использовать
// removeRange(range) когда это возможно
window.getSelection().removeAllRanges();
console.log();
});
}
</script>
Ответы (1 шт):
Автор решения: Константин
→ Ссылка
Могу предложить пластичное решение с использованием библиотеки jquery:
var link;
$('.btn').click(function(){ //вешаем событие клика на класс .btn
link = $(this).siblings('a').attr('href'); //берем соседа типа "а" у кликнутой кнопки и в переменную link записываем содержимое атрибута href.
});