【发布时间】:2012-05-17 03:09:13
【问题描述】:
我有一个英文和西班牙文的网站,在网站的每个页面中都有一个链接指向该特定页面的西班牙文版本,所以如果用户在“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>
我想做的是将HTML中<a>标签中的href和类留空,然后根据用户所在的页面为<a>分配一个类和一个href URL,这样例如,我可以将该语言 div 添加到外部文件,然后使用<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),西班牙文版也一样(有相应的翻译网址名称)。我认为必须重复该代码 8 次(每个链接 1 个,每种语言 4 个链接)会过多,实际上会添加更多代码,而不是简单地在 HTML 中添加类和 href url。使用 JS 的目的是简化事情。
所以我基本上想知道是否有人能想出更好的方法来做到这一点,这不需要那么多代码。如果我需要更改某些内容,我试图避免不得不编辑每个不同的页面。另外,我想知道这是否是实现我想要使用 JavaScript 的最佳方式。
【问题讨论】:
标签: javascript location append attr