javascript - 查找兄弟元素的 ID 名称并添加到 href
问题描述
我正在创建一个包含很多子部分的长文档,并希望使用一些 JS 自动化一些步骤。(这是基本 CMS 中的静态页面。)
我有很多这样的:
<div class="title">
<h3 id="oranges">Oranges are great</h3>
<a href="XXXX" class="url">Link to this section</a>
</div>
<div class="title">
<h3 id="apples">Apples are great</h3>
<a href="XXXX" class="url">Link to this section</a>
</div>
我想要做的是获取 H3 的 ID 名称并自动将其作为锚点插入到链接的 href="" 中。这可能吗?
所以链接(.url)有“#organges”或“#apples”作为href,如果这有意义的话。
jQuery 已经加载,如果这样更容易的话。
解决方案
由于 id 是唯一的,要么你必须循环通过带有类名标题的 div 或循环通过标签名,即使你可以将类名分配给标签 h3。获取元素by class name
将比by tagname
减少人为错误更可取。Vannilla JS 是我个人的偏好和建议
var div = document.querySelectorAll(".title h3"); // or classname can be oranges
div.forEach(function(slide, index) {
let id_ = slide.getAttribute('id')
slide.nextElementSibling.href = '#' + id_;
console.log(slide.nextElementSibling.href)
});
<div class="title">
<h3 id="oranges">Oranges are great</h3>
<a href="XXXX">Link to this section</a>
</div>
<div class="title">
<h3 id="oranges2">Oranges are great</h3>
<a href="XXXX">Link to this section</a>
</div>
方法二
按标签名循环
var div = document.querySelectorAll("h3"); // or classname can be oranges
div.forEach(function(slide, index) {
let id_ = slide.getAttribute('id')
slide.nextElementSibling.href = '#' + id_;
console.log(slide.nextElementSibling.href)
});
<div class="title">
<h3 id="oranges">Oranges are great</h3>
<a href="XXXX">Link to this section</a>
</div>
<div class="title">
<h3 id="oranges2">Oranges are great</h3>
<a href="XXXX">Link to this section</a>
</div>
编辑
var div = document.querySelectorAll(".title h3"); // or classname can be oranges
div.forEach(function(slide, index) {
let id_ = slide.getAttribute('id')
slide.nextElementSibling.href = '#' + id_;
slide.nextElementSibling.className = 'url';
console.log(slide.nextElementSibling)
});
<div class="title">
<h3 id="oranges">Oranges are great</h3>
<a href="XXXX">Link to this section</a>
</div>
<div class="title">
<h3 id="apples">Apples are tasty</h3>
<a href="XXXX">Link to this section</a>
</div>
推荐阅读
- discord.js - createDM() 方法对用户的作用是什么?
- python-3.x - 如何在 python 中转换返回的 DWORD 值?
- mongodb - Mongo DB 中文档模式的一致性
- android - 我应该以不同于处理深层链接的方式处理 Firebase 动态链接吗?
- c# - 当 startet 退出事件时,在 C# 中启动 sqlcmd 进程不起作用
- c# - 带参数的属性路由不工作:没有参数工作
- emacs - 配置公共部分的路径
- firebase - 如何找出发生了哪些收集权限错误
- c# - 在 EF Core 中使用基类的导航属性
- powershell - 具有存储凭据的启动进程 PowerShell 不起作用