/ / Pobierz tekst elementu etykiety po kliknięciu łącza - javascript, jquery, html

Pobierz tekst elementu etykiety po kliknięciu linku - javascript, jquery, html

Mam nieuporządkowaną listę i pod każdą <li> element Mam <label> i link do tekstu <label>.

Na przykład, jeśli kliknę na pierwszy link "Kopiuj tekst", chcę uzyskać "label1", a na drugim chcę "label2".

Wymyśliłem poniższy kod, ale nie działa. Czy ktoś może mi pomóc to naprawić.

Kod HTML :

<ul>
<li>
<label>label1</label>
<a onclick="copyText()">Copy Text</a>
</li>
<li>
<label>label2</label>
<a onclick="copyText()">Copy Text</a>
</li>
</ul>

Kod JS:

function copyText() {
alert($(this).closest("li").children("label").text());
}

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz przekazać kontekst elementu i zmienić Text do .text().

onclick="copyText(this)"
function copyText(el) {
alert($(el).closest("li").children("label").text());
}

Przykład tutaj


Możesz po prostu unikać jQuery i pobierać tekst elementu bezpośrednio:

function copyText(el) {
alert(el.previousSibling.textContent);
}

Proponuję zamiast tego używać dyskretnego JavaScriptu i dodawać detektory zdarzeń:

$("li a").on("click", function () {
alert($(this).closest("li").find("label").text());
});

Przykład tutaj