【发布时间】:2020-10-13 23:29:20
【问题描述】:
我正在尝试创建一个函数来查找锚标记指向的元素的 id,并将类附加到该元素。我需要这是 vanilla js 而不是 jquery。
例如:
<div id="firstDiv"></div>
<div> Destination </div>
<div> Destination #2 </div>
我们的想法是,一旦您单击锚标记,它会将您带到 div 并将一个类附加到该 div 以启动一个函数。
我编写的脚本运行循环,从 javascript 对象中添加 href 属性和 id 属性的值。见下文:
var rooms = [
{
id: 1,
name: Example,
},
{
id:2,
name: Example #2,
}
]
for ( x in rooms ) {
var i = document.getElementById("firstDiv");
var a = document.createElement("a");
i.appendChild(a);
a.href = "#" + rooms[x].id;
a.innerHTML += rooms[x].name + "<br>";
a.classList.add("show");
}
var rect = document.getElementsByTagName("rect");
for ( i = 0; i < rect.length; i++ ) {
rect[i].setAttribute("id", rooms[i].id);
}
输出:
<div id="firstDiv">
<a href="#1"> Example </a>
<a href="#2"> Example #2 </a>
</div>
<div id="1"> Destination </div>
<div id="2"> Destination #2 </div>
下面的函数是我希望该函数在单击 a 标签时对每个相应的 div 执行的操作的示例。
function attach() {
var div = document.getElementById(rooms[i].id);
div.classList.toggle("active");
}
关于如何根据我的特殊需要正确编写此函数的任何建议。 for 循环是否最适合这个或 if/else 语句。我都试过了,但都没有成功。
如果我需要进一步澄清,请告诉我。
【问题讨论】:
-
您的初始 HTML 示例不包含锚点。
-
锚标签由第一个for循环创建
-
为什么要在锚标记中添加 BR?使用 CSS。
标签: javascript html href