所以我试图学习正确的vanilla javascript而不是依靠框架和库为我做的工作。问题是:我试图了解函数何时,何地以及如何进入函数。
E.G。 我创建了一些链接和一个函数,里面有一个循环来计算链接,并应返回链接数及其名称。但我不断回头的是(a)标签的数量。
我可以解释一下如何获取链接名称,因为我已尝试使用innerHTML和(a)标记。根据我的理解并查看DOM列表,我应该能够深入了解元素以获得我需要的东西。我假设我的编码错了。
var links = document.getElementsByTagName('a');
function loopLinks(links) {
for (i = links; i < links.length; i++);
return a.innerHTML;
}
console.log(links);
&#13;
<ul>
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
<li><a href="#">Link 5</a></li>
<li><a href="#">Link 6</a></li>
<li><a href="#">Link 7</a></li>
</ul>
&#13;
答案 0 :(得分:1)
早期的海报是正确的,你的代码有一些基本的结构问题。我已经重写了它以做我理解你想做的事情,并用评论解释每一步发生的事情。
我认为您可能误解的一个基本问题是定义函数和调用函数之间的区别。我试图在评论中证明这一点。
在JavaScript中还有很多其他方法可以做到这一点,但这种方法是一种简单的EcmaScript 5风格解决方案:
// this command gets an array of links from the DOM
var links = document.getElementsByTagName('a');
// to get the NUMBER of links, just log the length of the array
console.log('Number of links:', links.length);
// here you DEFINE a function that loops over the links.
function loopLinks(links) {
// You want to loop over the indicies in the "links" array
for (let i = 0; i < links.length; i++){
// get a reference to the link
let a = links[i];
// log out the name of each link
console.log(a.innerHTML);
}
}
// here, you actually INVOKE(call) the function that loops over the links.
// INVOKING the function makes it run, and outputs your link names.
loopLinks(links);
祝你好好参与编程。不要放弃。