我想在没有<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的情况下将活动类添加到当前,并在刷新后添加类?
答案 0 :(得分:2)
您可以从当前位置确定语言,然后使用它来查找正确的锚点:
var lang;
if (lang = location.href.match(/lang=([a-z]{2})/)) {
$('[data-value=' + lang[1] + ']').addClass('active');
}