这个问题是关于纯JavaScript的HTML(没有jQuery或其他技术).
我try 手动编写一个包含URL列表的文件,这些URL应该显示为链接.为了减少键入和避免不一致,我想使用JavaScript获取li
个元素的列表,并将其转换为li
个元素,其中包含适当的a
个元素,URL为href
,并且是文本.
朝着这个方向努力,我得到了以下代码,有点浓缩(没有a
个元素)来展示眼前的问题:
<?xml version="1.0" encoding="UTF-8"?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
</head>
<body onload="linkify()">
<ul>
<li href="https://stackoverflow.com/questions/5844732/getelementsbytagname-length-returns-zero" />
<li href="https://stackoverflow.com/questions/26932862/why-does-document-getelementsbyname-have-a-length-of-0-despite-having-elements" />
<li href="https://stackoverflow.com/questions/4057440/is-chrome-s-javascript-console-lazy-about-evaluating-objects" />
</ul>
<script>
function linkify () {
let items = document.getElementsByName( "li" );
for ( let i = 0; i < items.length; ++i ) {
item = items.item( i );
item.innerHTML = item.getAttribute( "href" );
}
}
</script>
</body>
</html>
我希望页面显示URL列表.但是,该列表保留三个空列表项,没有URL.调试器告诉我,let items = document.getElementsByName( "li" );
得到一个0items.length
对象,因此for
循环不做任何事情.
我希望只有在加载整个DOM时才会调用linkify()
,所以应该找到所有三个li
元素.我的错误在哪里?