我有一个无序列表,在每个<li>
元素下我有一个<label>
和一个获取<label>
文本的链接。
例如,如果我先点击&#34;复制文字&#34;链接,我想得到&#34; label1&#34;而对于第二个我想要&#34; label2&#34;。
我已经提出了以下代码,但它没有用。任何人都可以帮我解决这个问题。
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>
JS代码:
function copyText() {
alert($(this).closest('li').children('label').text());
}
答案 0 :(得分:2)
您需要传递元素的上下文,并将Text
更改为.text()
。
onclick="copyText(this)"
function copyText(el) {
alert($(el).closest('li').children('label').text());
}
你可以避免使用jQuery直接获取元素的文本:
function copyText(el) {
alert(el.previousSibling.textContent);
}
我建议使用不引人注目的JavaScript并添加事件监听器:
$('li a').on('click', function () {
alert($(this).closest('li').find('label').text());
});