如何将活动类添加到当前<a> without href?</a>

时间:2013-02-24 13:48:47

标签: jquery location-href

我想在没有<a>的情况下将有效类添加到当前href
我有这个语言列表:

<ol>
    <li>
        <a data-value="en">English</a>
    </li>
    <li>
        <a data-value="de">Deutsch</a>
    </li>
    <li>
        <a data-value="nl">Nederlands</a>
    </li>
</ol>

这个jquery:

a.click(function(event) {
    var url = location.href = "index.php?lang=" + $(this).attr("data-value");
location.href = url;    
});

我尝试将活动类添加到<a>,如下所示:

a.removeClass('active');
    $(this).addClass('active');

但是当我更改语言时页面刷新并且.addClass不起作用,所以我尝试根据URL添加活动类(页面的URL是mysite.com/index.php?lang=en ,mysite.com/ index.php?lang = de 等):

var href = jQuery(this).find('a').attr('href');
$('a[href="' + href + '"]').addClass('current');

但即使这样也行不通! 我假设问题是由data-value引起的,那么如何在没有href的情况下将活动类添加到当前,并在刷新后添加类?

1 个答案:

答案 0 :(得分:2)

您可以从当前位置确定语言,然后使用它来查找正确的锚点:

var lang;

if (lang = location.href.match(/lang=([a-z]{2})/)) {
  $('[data-value=' + lang[1] + ']').addClass('active');
}