我有一个英文和西班牙文的网站,在网站的每个页面中都有一个链接指向该特定页面的西班牙文版本,所以如果用户在“home.php”页面上,它看起来像这样:
<div id="language">
<ul class="language">
<li class="english"><a href="#" class="active" title="English"></a></li>
<li class="divider"></li>
<li class="spanish"><a href="inicio.php" class="notactive" title="Español"></a></li>
</ul>
</div>
我想做的是将<a>
HTML 中标签中的 href 和 class 留空,并根据用户所在的页面分配一个 class 和 href URL <a>
,例如,我可以添加语言 div 到外部文件,并使用 an<include>
将其附加到每个页面。为此,我使用以下代码:
$('ul.menubar a').each(function(){
if(location.href.match('home.php')){
$('ul.language li.english a').addClass('active');
$('ul.language li.english a').append(function() {
$(this).attr('onclick', 'return false;');
});
$('ul.language li.spanish a').addClass('notactive');
$('ul.language a[href!="home.php"]').append(function() {
$(this).attr('href', 'inicio.php');
});
}
}
问题是该网站的英文版在导航栏中有 4 个链接(home.php、services.php、aboutus.php、contact.php),而西班牙文版也是如此(带有相应的 URL 名称翻译) . 我认为必须重复该代码 8 次(每个链接 1 个,每种语言 4 个链接)会过多,实际上会添加更多代码,而不是简单地在 HTML 中添加类和 href url。使用 JS 的目的是为了简化事情。
所以我基本上想知道是否有人能想到一个更好的方法来做到这一点,那不需要那么多代码。如果我需要更改某些内容,我试图避免不得不编辑每个不同的页面。另外,我想知道这是否是实现我想要使用 JavaScript 的最佳方式。