我结合了getElementsByTagName和getAttribute方法来获取文档中每个段落元素的title属性。这是代码:
var paras = document.getElementsByTagName('p');
for (i = 0; i < paras.length; i++) {
console.log(paras[i].getAttribute('title'));
}
Run Code Online (Sandbox Code Playgroud)
我特别需要帮助的代码行是以下代码:
console.log(paras[i].getAttribute('title'));
Run Code Online (Sandbox Code Playgroud)
[i]这行代码在做什么?这是我在for循环中声明的“计数器”变量,它在每次迭代中都在递增吗?并且[i]还代表该getElementsByTagName函数返回的数组索引吗?
此处的关键是getElementsByTagName返回一个NodeList。
然后,您将使用for循环遍历NodeList(可以认为是数组)。的值i从0到数组-1的长度。
因此,回答您的问题。是的,i是索引,当您说paras[i]要在index处请求元素时i。
例如,给定以下html:
<body>
<p id="a"></p>
<p id="b"></p>
<p id="c"></p>
</body>
Run Code Online (Sandbox Code Playgroud)
如果调用paras = document.getElementsByTagName("p"),它将返回一个包含3个元素的数组。
在paras[0]ID为a的p处。
at paras[1]是ID为b的p。
在paras[2]ID为c的p处。