在加载时更改链接锚文本,但在单击时恢复

时间:2011-01-16 04:52:15

标签: javascript jquery html

假设我有一堆链接与同一个类,但不同的锚文本,如

<a class="hey" href="sitepoint.com">sitepoint</a>
<a class="hey" href="google.com">google</a>

当页面加载时,我希望每个链接的锚文本显示我选择的相同文本。但是,当访问者点击链接时,锚点会更改回原始状态。如果点击任何链接可以将所有链接更改回原始链接,那将是最好的,但这并不重要。

任何帮助都是适用的。

3 个答案:

答案 0 :(得分:3)

$('a.hey').each(function(){
    $(this).data('oldHref', $(this).attr(href));
    $(this).attr('href', 'CUSTOM TEXT HERE');
    $(this).click(function(){
        this.attr('href', this.data('oldHref');
        return false; //prevent default action, I assume
    })
})

如果你的意思是innerHTML:

$('a.hey').each(function(){
    $(this).data('oldInner', this.innerHTML);
    this.innerHTML = 'CUSTOM TEXT HERE';
    $(this).click(function(){
        this[0].innerHTML = this.data('oldInner');
        return false; //prevent default action, I assume
    })
})

答案 1 :(得分:0)

我认为改变文字不会产生太大的影响,因为当用户点击链接时,他们会将用户重定向到其他位置。

对于用户来说也会让人感到困惑。

答案 2 :(得分:0)

我不知道我是否理解正确,但你会告诉我你是否使用任何JavaScript库,如Prototype和jQuery?

如果您的链接是经典链接,如果您可以在用户点击后更改锚文本没有任何意义,因为一旦他/她点击链接他/她将被重定向到另一个页面,但如果您链接是你可以做到的Ajax链接。您是否希望所有链接在用户单击之前显示相同的文本???