javascript - 访问相对 URL 上的 anchor

标签 javascript html

我正在为大约 30 个页面设置一个模板,这意味着我不能使用绝对 URL,但每个页面的结构和父页面将是相同的(它只是包含不同的信息)。我找不到将相对 URL 与 anchor 标记组合在一起的方法,但我确实设法使用 Javascript 来完成此操作。我觉得我已经把它完全复杂化了,尽管它有效,但一定有更好的方法。 这是我的 JS,它在结束 body 标记之前执行。

var url = window.location.href;
var file = url.split('?')[0];
var pathanddomain = file.split('/');
var path = pathanddomain.splice(1, pathanddomain.length-1);
var pathIndexToGet = 3;
var anchor1 = '../' + (path[pathIndexToGet]) + '#sec1';
var anchor2 = '../' + (path[pathIndexToGet]) + '#sec2';
var anchor3 = '../' + (path[pathIndexToGet]) + '#sec3';
var anchor4 = '../' + (path[pathIndexToGet]) + '#sec4';
var link1 = document.getElementById('seclink1');
var link2 = document.getElementById('seclink2');
var link3 = document.getElementById('seclink3');
var link4 = document.getElementById('seclink4');
link1.href = anchor1;
link2.href = anchor2;
link3.href = anchor3;
link4.href = anchor4;

以及它所引用的 HTML:

<a id="seclink1">Section 1</a>
<a id="seclink2">Section 2</a>
<a id="seclink3">Section 3</a>
<a id="seclink4">Section 4</a>

这是完成此任务的最有效方法吗?

将其组合成一行是否会比频繁使用变量更高效?即

document.getElementById('seclink1').href = '../' + (path[pathIndexToGet]) + '#sec1';

最佳答案

很简单,例如:

var url = location.pathname;
var anchor = url.split("/").pop();
for(var i=1;i<5;i++){
document.getElementById(`seclink${i}`).href = '../' + anchor + `#sec${i}`;
}

关于javascript - 访问相对 URL 上的 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60133455/

相关文章:

javascript - 如何在没有 tabindex=0 的情况下向 div 添加事件监听器?

php - 为什么我的JS函数在动态添加内容到页面后不起作用?

javascript - 如何在触发 onclick 事件时将 id 从 View (HTML)传递到 AngularJs Controller ?

html - 粘性下拉菜单。 (溢出)

javascript - 使用日期时奇怪的 Javascript 行为

javascript - 如何检查单击时是否选中了复选框?

Javascript简单数学我不明白(初学者)

javascript - z-index 没有将 div 定位在另一个之上

javascript - jquery 快速悬停问题

html - 无法将元素缩放到 100% 宽度