jQuery获取url的一部分,并将其应用于现有链接的末尾



我正在为Wordpress多站点创建一个脚本,以允许用户在站点之间切换,即EN、FR、DE。

菜单中的链接结构如下:

<li class="en-link">
<a href="https://example.com" />EN</a>
</li>
<li class="fr-link">
<a href="https://example.com/fr" />FR</a>
</li>

我希望用户能够在这些网站之间来回切换。但这显然不适用于子页面。所以我需要能够获得第一个正斜杠前面的所有内容,并将其应用于这些链接。

这就是我目前拥有的:

jQuery(function ($) {
var currentURL = (document.URL); 
var part = currentURL.split("/")[1];
$(".en-link a").attr('href', $(".en-link a").attr('href') + part);
$(".fr-link a").attr('href', $(".fr-link a").attr('href') + part); 
});

但无济于事。有什么想法吗?

您可以从JavaScript的内置位置获取路径,window.location.pathname.split('/')[1]将为您提供路径的第一段,具体取决于您的url,这将是"fr"de";或";en";

这就是我使用jQuery 的原因

$(document).ready(function () {
var trail = window.location.href.substr(window.location.href.lastIndexOf("/")+1); 
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trail);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trail); 
}); 

但也需要针对新闻和媒体部分的子页面进行反击:

jQuery(function ($) {
$(document).ready(function () {
var trail = window.location.href.substr(window.location.href.lastIndexOf("/")+1);  
var trailSub = window.location.href.substr(window.location.href.lastIndexOf("/")-5);  
if (window.location.href.indexOf("press") != -1) {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trailSub);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trailSub); 
}
else if (window.location.href.indexOf("media") != -1) {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trailSub);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trailSub); 
}
else {
$(".en-link").find('a').attr('href', $(".en-link").find('a').attr('href') + trail);
$(".fr-link").find('a').attr('href', $(".fr-link").find('a').attr('href') + trail); 
}
});
});

我相信这可以简化,但目前已经缩小了。

相关内容

最新更新