在页面加载时将字符串附加到每个URL

时间:2015-09-30 16:20:25

标签: javascript jquery

我的网站是英文的,但是当页面加载时我想用西班牙语显示它。所以,我从谷歌翻译得到了一个脚本,我把它放在我的头文件中,但是我需要在每个URL的末尾附加一些#googtrans(en|fr)。到目前为止我所做的是:

$(document).ready(function () {
  $('a').each(function () {
    this.href += '#googtrans(en|es)';
  })
});

但是这个代码的一个问题是,它阻止了我的弹出窗口和引导程序下拉列表。 有没有简单的方法将该尾随字符串放到页面加载的每个URL上。

3 个答案:

答案 0 :(得分:2)

过滤掉您不希望应用散列的属性或类的链接:

例如:

$('a').not('[data-toggle], [href^="#"]').prop('hash','#googtrans(en|es)'); 

如果not()中的选择器不够,您可以使用更强大的filter()方法

更理想的方法是在<a>上设置课程,以表示您想要修改的课程。

<a class="translate">
$('a.translate').prop('hash','#googtrans(en|es)'); 

OR

<div class="translate">
   <a>
</div>
$('.translate a').prop('hash','#googtrans(en|es)'); 

请注意,使用hash属性与连接href

的效果相同

如果没有看到更多的HTML,很难提供更多帮助

答案 1 :(得分:0)

现在,您使用此代码替换所有<a>标记。

最佳方式 - 它正在其他div上使用Google Translator块链接,如下所示:

<div id="gtr">
  ...
</div>

和脚本:

$(document).ready(function () {
  $('#gtr a').each(function () {
    $(this).attr('href', $(this).attr('href')+'#googtrans(en|es)');
  });
});

答案 2 :(得分:-1)

而不是

this.href += “#googtrans(en|es)”;

试试这个:

$(this).attr("href", $(this).attr("href") + "#googtrans(en|es)");