Javascript + DOM - 同一页面内的链接
Javascript + DOM - links within same page
我有一个包含多个条目 (div) 的现有页面,我循环遍历所有条目以获取所需的内容 (headers) 以创建 links 的列表。
在这个过程中,我为每个 header 分配了一个唯一的 ID,但我似乎无法将 link 列表到 "connect" 到特定条目。
Javascript:
var entries = document.getElementsByClassName('entry');
var ul = document.createElement('ul');
for (var i = 0; i < entries.length; i++) {
var li = document.createElement('li');
var heading = entries[i].getElementsByTagName('h2')[0];
var addId = heading.setAttribute("id", "#entry" + i);
var x = heading.getAttribute("id");
var headingText = document.createTextNode(heading.firstChild.nodeValue);
var link = document.createElement('a');
link.setAttribute("href", x);
link.appendChild(headingText);
li.appendChild(link);
ul.appendChild(li);
}
var target = document.getElementById('newdiv');
target.appendChild(ul);
我错过了什么,或者做错了什么?
当我用 link 将鼠标悬停在我的列表上时,它们会按预期显示 link - 但当我单击它时没有任何反应。如果我检查 DOM,我还可以看到所有 header 都分配了一个唯一 ID。
从 :
中删除#
var addId = heading.setAttribute("id", "entry" + i);//("id", "#entry" + i)
并将 # 添加到 :
link.setAttribute("href", "#"+x);//("href",x)
我有一个包含多个条目 (div) 的现有页面,我循环遍历所有条目以获取所需的内容 (headers) 以创建 links 的列表。
在这个过程中,我为每个 header 分配了一个唯一的 ID,但我似乎无法将 link 列表到 "connect" 到特定条目。
Javascript:
var entries = document.getElementsByClassName('entry');
var ul = document.createElement('ul');
for (var i = 0; i < entries.length; i++) {
var li = document.createElement('li');
var heading = entries[i].getElementsByTagName('h2')[0];
var addId = heading.setAttribute("id", "#entry" + i);
var x = heading.getAttribute("id");
var headingText = document.createTextNode(heading.firstChild.nodeValue);
var link = document.createElement('a');
link.setAttribute("href", x);
link.appendChild(headingText);
li.appendChild(link);
ul.appendChild(li);
}
var target = document.getElementById('newdiv');
target.appendChild(ul);
我错过了什么,或者做错了什么?
当我用 link 将鼠标悬停在我的列表上时,它们会按预期显示 link - 但当我单击它时没有任何反应。如果我检查 DOM,我还可以看到所有 header 都分配了一个唯一 ID。
从 :
中删除#var addId = heading.setAttribute("id", "entry" + i);//("id", "#entry" + i)
并将 # 添加到 :
link.setAttribute("href", "#"+x);//("href",x)