如何在 forEach() JS 中到达最后一个元素
2017-10-20
7630
我尝试了很多解决方案,但都不起作用。我正在循环节点元素,我想转到最后一个,所以我更新了它。
app.js
var userLen = document.querySelectorAll('.username').length
document.querySelectorAll('.username').forEach(function (event) {
event[event === (userLen - 1)].innerHTML = window.localStorage.getItem('micky')
})
每次我都会收到此错误 Uncaught TypeError: Cannot set property 'innerHTML' of undefined.
2个回答
您不需要循环遍历元素来到达最后一个元素。
此外,您尝试获取
event[true]
或
event[false]
,因为
event === (userLen - 1)
将返回布尔值,而不是实际索引。
试试这个:
var nodeElememnts = document.querySelectorAll('.username');
if(nodeElements.length > 0){
nodeElements[nodeElements.length - 1].innerHTML = window.localStorage.getItem('micky');
}
Grégory Elhaimer
2017-10-20
您可以在此处不使用
forEach
来执行此操作,例如:
var elm = document.querySelectorAll('.username');
var lastElem = [].slice.call(elm).pop();
if (lastElem) lastElem.innerHTML = 'It Works!';
// For debugging purpose
console.log( [].slice.call(elm) ) //<-- Convert NodeList to Array
console.log( lastElem )
<div class="username">A</div>
<div class="username">B</div>
<div class="username">C</div>
palaѕн
2017-10-20