在链接点击上获取标签元素的文本

时间:2015-02-07 19:14:27

标签: javascript jquery html

我有一个无序列表,在每个<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());
}

1 个答案:

答案 0 :(得分:2)

您需要传递元素的上下文,并将Text更改为.text()

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

Example Here


你可以避免使用jQuery直接获取元素的文本:

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

我建议使用不引人注目的JavaScript并添加事件监听器:

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

Example Here