无法更改链接的标题属性

时间:2014-05-20 13:36:49

标签: javascript jquery firebug

我让我的网站多语言化。因此,当单击语言按钮时,我通过jQuery更改文本。这适用于所有文本,但不适用于我在导航中用于悬停效果的链接的标题属性。

链接如下所示:

<div class="nav-container">
  <!-- Navigation for Portfolio -->
  <div class="nav" id="services">
    <a href="#" class="thumb tr" title="Leistungen" key="menu_business"><span><img src="images/menu_icons/services.png" alt="" /></span></a>
  </div>
</div>

我使用的文字,例如(有效!):

<h4 class="jobtitle tr" key="companyfield">blabla</h4>

我的功能如下:

$(document).ready(function() {
  // onclick behavior
  $('.lang').click( function() {
    var lang = $(this).attr('id'); // obtain language id

    // translate all translatable elements
    $('.tr').each(function(i) {
      if($(this).attr('key').indexOf("menu_") == 0) {
        $(this).attr('title', aLangKeys[lang][ $(this).attr('key') ]);
      } else {
        $(this).text(aLangKeys[lang][ $(this).attr('key') ]);
      }       
    });
  });
});

在这里初始化用作字典的数组:

var aLangKeys = new Array();
aLangKeys['de'] = new Array();
aLangKeys['en'] = new Array();

aLangKeys['de']['menu_business'] = 'Leistungen';
aLangKeys['en']['menu_business'] = 'Business';

使用Firebug调试函数时标题为空,但我可以正确查看所有其他属性,例如hrefclass

我尝试使用title(&gt; = jquery 1.6),.prop(&lt; jquery 1.6)和原生JavaScript .attr来读/写.title。它都不起作用。

jQuery包含我使用的是:

<!-- include jQuery library -->
<script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
<!-- jquery tools script -->
<script type="text/javascript" src="js/jquery.tools.min.js"></script>
<!-- jqtransform script for forms -->
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="js/jquery.tinyscrollbar.min.js"></script>

1 个答案:

答案 0 :(得分:1)

我认为您可以使用语言代码属性和语言选择器:

http://www.w3schools.com/tags/ref_language_codes.asp

http://api.jquery.com/lang-selector/

您可以通过CSS或Javascript / JQuery设置HTML元素的可见性,代码更少,灵活性更高,具体如下:

$('.lang').click( function() {
    var lang = $(this).attr('id'); // obtain language id

    // translate all translatable elements
    $('div[lang]').css('display','none');
    $(':lang('+lang+')').css('display','initial');
} );

使用重复的html元素(通过CSS隐藏第二语言):

<div lang="de">blabla deutch</div>
<div lang="en">blabla english</div>